请问
1)如何发送一个WM_DRAWITEM 的消息?
2)什么操作会促使发送一个WM_DRAWITEM 消息?
3)怎么样可以在任意时刻获得DRAWITEMSTRUCT的结构信息。

解决方案 »

  1.   

    1、2
    控件被设置Owner Draw(自绘)属性后,在系统需要对其进行绘制时,向它发送 WM_DRAWITEM 消息
      

  2.   

    3、DRAWITEMSTRUCT 只有在 WM_DRAWITEM 消息处理时才能得到, 你可以通过手动触发重绘来获得。例如通过 RedrawWindow 函数
      

  3.   

    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就可以了~~~
      

  4.   

    注意一下——WM_DRAWITEM是发给父窗口的,对话框而不是控件