WM_DRAWITEM的消息
请问
1)如何发送一个WM_DRAWITEM 的消息?
2)什么操作会促使发送一个WM_DRAWITEM 消息?
3)怎么样可以在任意时刻获得DRAWITEMSTRUCT的结构信息。
问题点数:100、回复次数:7Top
1 楼SoLike(思危)回复于 2006-08-05 17:52:21 得分 50
1、2
控件被设置Owner Draw(自绘)属性后,在系统需要对其进行绘制时,向它发送 WM_DRAWITEM 消息Top
2 楼SoLike(思危)回复于 2006-08-05 17:54:31 得分 0
3、DRAWITEMSTRUCT 只有在 WM_DRAWITEM 消息处理时才能得到, 你可以通过手动触发重绘来获得。例如通过 RedrawWindow 函数Top
3 楼wupangzi(无本之木)回复于 2006-08-05 21:49:51 得分 0
WM_DRAWITEM的消息怎么发呢?Top
4 楼snowbirdfly(专心搞好嵌入式~~~)回复于 2006-08-05 21:59:51 得分 20
DRAWITEMSTRUCT DIS;
DIS.CtlType = ODT_BUTTON;
DIS.CtlID = GetDlgCtrlID();
DIS.itemAction = action; //action为你定义的动作
DIS.itemState = mode; //mode为你定义的模式~~~
DIS.hwndItem = GetSafeHwnd();
DIS.hDC = GetDC()->GetSafeHdc();
GetClientRect(&(DIS.rcItem));
SendMessage(WM_DRAWITEM,(WPARAM)GetSafeHwnd(),(LPARAM)&DIS);
直接可以通过SendMessage就可以了~~~Top
5 楼cleverwyq(此人三无)回复于 2006-08-05 22:15:45 得分 10
有必要手动发么?Top
6 楼goodboyws(深夜不眠者(VCMVP))回复于 2006-08-05 23:03:16 得分 20
注意一下——WM_DRAWITEM是发给父窗口的,对话框而不是控件Top
7 楼wupangzi(无本之木)回复于 2006-08-06 10:11:14 得分 0
哦!谢谢!Top




