hur.cn - 华软网

 热门搜索

求助::关于 sendmessage()改变 statictext 字体颜色的问题

  作者:未知    来源:网络    更新时间:2011/9/19
求助各位高手::我这里有一个进度条和一个statictext 使用sendmessage()改变进度条颜色可以,但是改变statictext字体颜色时没有效果啊~
::SendMessage(m_pc.GetSafeHwnd(), PBM_SETBARCOLOR, 0, (LPARAM) RGB(255,0,0));//改变进度条颜色

m_static_result1.SetWindowText("Wrong");
::SendMessage(m_static_result1.GetSafeHwnd(), WM_CTLCOLORSTATIC, 0, (LPARAM) RGB(255,0,0));//改变TEXT字符颜色

还有,sendmessage()参数中的 PBM_ 和 WM_ 有没有什么区别? 在改变进度条颜色的时候如果使用WM_CTLCOLOR运行中会出现问题??
谢谢帮助~~
---华软 网友回答---
sendmessage被阻塞了吧,用postmessage试试
---华软网友回复---
static控件如果不自绘或者是响应父窗口的OnCtrlColor 消息的话是不支持改变颜色的,

2.WM_开头的是标准的windows消息,一般是通用的,其他开头的是针对某一控件自己特殊的消息。由控件自已内部单独处理。

---华软网友回复---
引用 1 楼 quwei197874 的回复:
sendmessage被阻塞了吧,用postmessage试试

postmessage我也试了,也不行,我在循环的最开始加了个PeekAndPump();应该不是阻塞的问题吧~
---华软网友回复---
引用 2 楼 cpp2017 的回复:
static控件如果不自绘或者是响应父窗口的OnCtrlColor 消息的话是不支持改变颜色的,

2.WM_开头的是标准的windows消息,一般是通用的,其他开头的是针对某一控件自己特殊的消息。由控件自已内部单独处理。

OnCtrColor 消息的情况我已经实现了,但是程序运行的时候不停的进入这个消息,我只能在这个消息里的开始就加一个判断,让它在特殊条件下执行变色程序。 控件的自绘还不是太清楚,再学习下,感谢慕白兄~~
---华软网友回复---
引用 2 楼 cpp2017 的回复:
static控件如果不自绘或者是响应父窗口的OnCtrlColor 消息的话是不支持改变颜色的,

2.WM_开头的是标准的windows消息,一般是通用的,其他开头的是针对某一控件自己特殊的消息。由控件自已内部单独处理。

慕白兄,麻烦再请教一下,关于自绘的一个问题,控件中好像只有按钮,listbox,combobox,checklistbox这些有 ownerdraw 的属性,重载drawitem 就可以实现重绘,那其余那些控件呢? 是自己在派生的子类中写一个函数,还是可以重载其他函数?      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。