Как определить отправителя сообщения WM_COMMAND?
Я использую VS 2010 C++. У меня есть диалоговое окно, содержащее массив из 126 идентичных кнопок управления, имеющих одинаковое значение для идентификатора элемента управления.
Когда кнопка нажата и диалоговое окно хоста получает полученное сообщение WM_COMMAND, как диалоговое окно может определить, какая кнопка нажата? Я мог использовать 126 различных значений идентификатора элемента управления, но я надеялся на что-то более краткое.
Кто-нибудь может помочь?
1 ответ
Сам идентификатор означает "что идентифицирует" объект. Таким образом, вам нужно будет иметь отдельный контрольный идентификатор.
Должно быть что-то особенное в каждом элементе управления кнопки, чтобы идентифицировать определенный.
Если вы хотите сохранить один и тот же идентификатор элемента управления, вы можете отслеживать дескриптор (HWND) каждой создаваемой кнопки и использовать параметр LPARAM в сообщении WM_COMMAND, чтобы идентифицировать элемент управления по дескриптору.
Если у вас есть уникальный текст для каждой кнопки, вы можете использовать свойство текста также кнопки.