Я пытаюсь включить в процедуру диалогового окна, что при получении сообщения WM_CTLCOLORSTATIC я получаю идентификатор элемента управления, отправляющего сообщение.
case WM_CTLCOLORSTATIC:
UINT ID = GetWindowLong((HWND)lParam, GWL_ID);
Проблема в том, что … когда я пытаюсь привести тип lParam к WM_CTLCOLORSTATIC, он возвращает значение 65535, что не может быть правильным; У меня даже нет элемента ресурса с максимальным идентификатором UINT 65535.
Можете ли вы дать мне понять, почему это происходит?
Ваш вопрос не очень ясен, но я думаю, что вы получили идентификатор 65535, который равен -1, что является довольно стандартным для статического идентификатора элемента управления.
Если вы хотите различать статические элементы управления, присвойте им разные идентификаторы.
Если вам не нужен цвет для других статических элементов управления, просто используйте:
if ( ID == IDC_RECT_CC_00 ) {
[...]
} else {
// don't bother
}
Других решений пока нет …