社区
汇编语言
帖子详情
如何改变以button类创建的窗口控件的颜色(在WIN32asm编程中)
kgduwu
2008-11-15 11:47:54
我在WIN32asm需要改变以button类创建的窗口控件的颜色,没有找到相应的API函数,超类化button类来创建一个新类来改变 WndClassex.hbrBackground的背景色以期创建改变了颜色的窗口控件也不成功,大家指导指导,给俺说说有啥法子能实现我要的功能!!!
...全文
237
8
打赏
收藏
如何改变以button类创建的窗口控件的颜色(在WIN32asm编程中)
我在WIN32asm需要改变以button类创建的窗口控件的颜色,没有找到相应的API函数,超类化button类来创建一个新类来改变WndClassex.hbrBackground的背景色以期创建改变了颜色的窗口控件也不成功,大家指导指导,给俺说说有啥法子能实现我要的功能!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
kgduwu
2008-11-21
打赏
举报
回复
我是要主动刷新,并不是需要鼠标点击该控件后才刷新该控件,例如控件上有字如Y,你在程序中按Y键后该控件(如调用:invoke CreateWindowEx,WS_EX_WINDOWEDGE,offset szbutton,offset szbuttonx0y7,\
WS_CHILD or WS_VISIBLE,\
315,1,42,25,\
hWnd,8,hInstance,NULL在父窗口hWnd中创建的控件)背景色将改为另一种颜色
xiaopoy
2008-11-21
打赏
举报
回复
好吧,第九章也该看看:
用SetSysColors来改变按钮的外观可能不是您想做的,这会影响目前在Windows下执行的所有程序,这也是使用者不太喜欢的。
更好的方法(同样也只是理论上)是处理WM_CTLCOLORBTN消息,这是当子窗口即将为其显示区域着色时,由按钮控件发送给其父窗口消息处理程序的一个消息。父窗口可以利用这个机会来改变子窗口消息处理程序将用来着色的颜色(在Windows的16位版本中,一个称为WM_CTLCOLOR的消息被用于所有的控件,现在针对每种型态的标准控件,分别代之以不同的消息)。
当父窗口消息处理程序收到WM_CTLCOLORBTN消息时,wParam消息参数是按钮的设备内容句柄,lParam是按钮的窗口句柄。当父窗口消息处理程序得到这个消息时,按钮控件已经获得了它的设备内容。当您的窗口消息处理程序处理一个WM_CTLCOLORBTN消息时,您必须完成以下三个动作:
使用SetTextColor选择设定一种文字颜色。
使用SetBkColor选择设定一种文字背景颜色。
将一个画刷句柄传回给子窗口。
理论上,子窗口使用该画刷来着色背景。当不再需要这个画刷时,您应该负责清除它。
下面是使用WM_CTLCOLORBTN的问题所在:只有按键和拥有者绘制按钮才给其父窗口发送WM_CTLCOLORBTN,而只有拥有者绘制按钮才会响应父窗口消息处理程序对消息的处理,而使用画刷来着色背景。这基本上是没有意义的,因为无论怎样都是由父窗口来负责绘制拥有者绘制按钮。
超类化button类来创建一个新类来改变 WndClassex.hbrBackground的背景色,不成功的表示该是颜色改变但不是自己想要的结果吧?
cnzdgs
2008-11-16
打赏
举报
回复
给按钮加上BS_OWNERDRAW风格,响应WM_DRAWITEM消息,自己绘制按钮。
qap22
2008-11-16
打赏
举报
回复
??
invaliddescriptor
2008-11-16
打赏
举报
回复
oo
qap22
2008-11-16
打赏
举报
回复
oo
IDWB
2008-11-16
打赏
举报
回复
OllyDBG 入门教程(多模式版) 第一卷 第7篇
xiaopoy
2008-11-16
打赏
举报
回复
你需要再看一遍
Windows程序设计.chm
第五章
win32
汇编环境,对话框
中
设置RichEdit
控件
客户区的背景
颜色
、指定区域的文字
颜色
该博客介绍了在
win32
汇编环境下,如何在对话框
中
设置RichEdit
控件
客户区的背景
颜色
和指定区域的文字
颜色
。给出了
asm
文件和RC文件的代码,代码抄进rad
asm
可直接编译运行,主要部分有备注。
win32
汇编环境,
窗口
程序
中
使用月历
控件
示例二
本文展示了如何在
Win32
汇编环境下
创建
窗口
程序,并使用月历
控件
。通过代码示例,演示了如何
改变
月历
控件
的起始日为周一,并响应日期点击事件,将选
中
的日期设置为当前日期。
win32
汇编环境,
窗口
程序
中
使用月历
控件
示例一
本文通过
Win32
汇编语言展示了如何在
窗口
程序
中
创建
和操作月历
控件
。内容包括设置月历
控件
的字体、
颜色
、获取和设置日期等。代码示例详细,可直接编译运行。
win32
汇编环境,
窗口
程序
中
使用进度条
控件
本文介绍了在
win32
汇编环境的
窗口
程序
中
使用进度条
控件
,阐述了进度条
控件
涉及的长度单位、步长和推进时间等要素,并给出两个进度条示例帮助理解原理,还提供了完整的
asm
代码,可复制进Rad
ASM
直接编译。
《
Win32
Asm
与Rad
Asm
开发教程》第三部视频(对话框程序实例),2011-1-28(本系列更新完毕)!
本教程通过屏幕拾色器实例,详细讲解了使用Rad
asm
进行基于对话框的
Win32
asm
编程
方法,包括资源管理、图标设置、
窗口
样式配置、定时器使用等。
汇编语言
21,500
社区成员
41,617
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章