У меня есть класс WidgetController
, который управляет несколькими виджетами (двигатели, как выясняется, но это может быть практически все). У него есть сопутствующий пользовательский интерфейс WidgetControllerUI
, чтобы делать элементы интерфейса, представляющие несколько виджетов.Работа с несколькими сообщениями WM_USER (или достижение того же результата)
Я хотел бы, чтобы отправлять сообщения, такие как WM_USER + 1000 + N
из экземпляра WidgetController
к экземпляру WidgetControllerUI
, чтобы указать, что-то произошло с виджетом N
. Та часть легко:
// Somewhere inside WidgetController:
pWidgetUI->PostMessage(WM_USER + 1000 + N);
Но как я могу направить все эти (смежные) сообщения в один обработчик сообщений в моем WidgetControllerUI
классе? На поверхности ON_COMMAND_RANGE
, ON_UPDATE_COMMAND_UI_RANGE
и ON_CONTROL_RANGE
не подходят. Они? Есть ли более элегантный механизм, возможно, не используя сообщения Windows вообще?
Я бы просто использовал одно сообщение и передал N в wparam или lparam, но я не знаю, облегчит ли это MFC. –
Я бы даже не потрудился с «N», просто передал экземпляр виджета в wParam или lParam. –
Ха! Все эти годы, используя PostMessage() с аргументами по умолчанию ... Я никогда не замечал, что вы можете отправлять с ним дополнительные параметры! D'Oh! Очевидный ответ - спасибо! – omatai