社区
汇编语言
帖子详情
如何改变以button类创建的窗口控件的颜色(在WIN32asm编程中)
kgduwu
2008-11-15 11:47:54
我在WIN32asm需要改变以button类创建的窗口控件的颜色,没有找到相应的API函数,超类化button类来创建一个新类来改变 WndClassex.hbrBackground的背景色以期创建改变了颜色的窗口控件也不成功,大家指导指导,给俺说说有啥法子能实现我要的功能!!!
...全文
239
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
控件
客户区的背景
颜色
、指定区域的文字
颜色
在对话框程序
中
,生成richedit
控件
,并指定
控件
的背景色、每行文字的
颜色
等。
win32
汇编环境,
窗口
程序
中
使用月历
控件
示例二
以下示例有2个操作,即将每周的开始日进行
改变
,将默认的周日开始改为周一开始,同时实现点击哪个日期,则设定为哪个日期
win32
汇编环境,
窗口
程序
中
使用月历
控件
示例一
以下示例为生成月历
控件
,
改变
背景色或文本色,获取或设置日期等的操作
win32
汇编环境,
窗口
程序
中
使用进度条
控件
进度条
控件
主要涉及的是长度单位,每步步长,推进的时间。
《
Win32
Asm
与Rad
Asm
开发教程》第三部视频(对话框程序实例),2011-1-28(本系列更新完毕)!
经过上两阶段的视频,相信很多朋友都感觉到
win32
asm
的魅力和Rad
asm
开发工具的强大。在本部视频课程里,我们进一步深入
win32
asm
的
编程
,主讲
win32
asm
主要的开发模式,即基于对话框的程序设计。本部视频的学习方式依然以完整的实例实现为主轴,进而学习
win32
asm
的
编程
知识和Rad
asm
的应用。 本次介绍的实例是叫做屏幕拾色器的程序,程序不大不小,但基础功能完整,很适合用来讲解对话框的
编程
,通过本部视频学习,相信大家都可以用rad
asm
来设计基于对话框的程序,而且使用起来得心应手
汇编语言
21,500
社区成员
41,617
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章