WM_DRAWITEM消息
当具有自绘风格的按钮、组合框、列表框或者菜单的可见部分发生改变时,就会发送WM_DRAWITEM消息给自绘控件所在的窗体。
窗口通过WindowProc函数接受WM_DRAWITEM消息
WindowProc函数定义如下:
LRESULT CALLBACK WindowProc(
HWND hwnd, //指向窗口的句柄
UINT uMsg, WM_DRAWITEM消息
WPARAM wParam, //control identifier(UINT)
LPARAM lParam //item data(LPDRAWITEMSTRUCT)
);
参数:
wParam
用来指定发送WM_DRAWITEM消息的控件标识符。如果该消息是由菜单发送的,则该参数为零。
lParam
指向一个DRAWITEMSTRUCT结构的指针,该结构包括一些关于要绘制的条目和要绘制的类型的信息。
返回值:
如果处理该消息,则必须返回TRUE
注意:
默认情况下,DefWindowProc函数为自绘列表框绘制焦点区域。
DRAWITEMSTRUCT结构的itemAction成员指定了应该要进行的绘制操作。
在处理该消息返回之前,应该要保证DRAWITEMSTRUCT结构的设备内容hDC处于默认的状态下(也就是不要改变设备环境的默认上下文)。
代码实例: