第一次提问,请各位仁兄帮助小弟!急!处理WM_CTLCOLORBTN(100分)

  • 主题发起人 主题发起人 ljpxyxc
  • 开始时间 开始时间
L

ljpxyxc

Unregistered / Unconfirmed
GUEST, unregistred user!
我想用拦住WM_CTLCOLORBTN 以改变BUTTON的颜色.MSDN 中说,在处理此消息时,<br>需要返回一个BRUSH 的句柄,我用MSG.RESULT:=BS.HANDLE;自理,可是不行.<br>用SOFTICE 给 WM_CTLCOLORBTN 下断点,证明,WINDOWS 已处理此消息,可是为什么<br>BUTTON的颜色还是不变?最好给兄弟示例代码!
 
刚好 BUTTON 是不行 的。
 
刘李子的不对,<br>因为MSDN 中说拦此消息就可以改变BUTTON的颜色!<br>我想对于此类问题,MSDN 中的话还是可信的吧!<br>请大家再帮我想想?<br>
 
The WM_CTLCOLORBTN message is sent to the parent window of a button <br>before drawing the button. The parent window can change the button's<br>text and background colors. However, only owner-drawn buttons respond <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^<br>to the parent window processing this message. <br>^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^<br><br>该如何理解?<br><br>
 
可以参考 ID 为 560498 的帖子,改变 Owner_draw 风格 button 的颜色。用 WM_CtlColorBtn<br>也要求 Button 为自画类型,而且消息是发给 Parent Window,在 VCL 中一般是 Form,<br>Panel 等容器控件,不知道是否应该在 Parent window 中截获该消息?
 
接受答案了.
 
后退
顶部