WM_CTLCOLORSTATIC lParam,C ++ WINAPI

时间:2013-12-18 13:13:27

标签: c++ winapi resource-id getwindowlong

我正在尝试包含到我的对话窗口过程中,当收到msg WM_CTLCOLORSTATIC时,我得到正在发送消息的Control的ID。

case WM_CTLCOLORSTATIC: 
        UINT ID = GetWindowLong((HWND)lParam, GWL_ID);

问题是......当我尝试输入WM_CTLCOLORSTATIC的lParam时,它返回值65535,这是不正确的;我甚至没有最大UINT ID为65535的资源项。

你能否告诉我为什么会这样?

1 个答案:

答案 0 :(得分:5)

您的问题不是很明确,但我猜您的ID为65535,即-1,这是静态控件ID的标准。

如果您希望能够区分静态控件,请为它们指定不同的ID。

如果您不关心其他静电控制的颜色,请使用:

if ( ID ==  IDC_RECT_CC_00 ) {
    [...]
} else {
    // don't bother
}