Я спрашиваю, как говорится в названии. Является ли это возможным?
Так как MSG
уже содержит все, что мне нужно для собственного обработчика событий, я подумал, может быть, я мог бы сделать один. Я прошу это в основном, чтобы избавиться от интерпретируемого приведения, чтобы я мог использовать внутренние функции и классы внутри моего класса окна для производительности. Я также хочу знать, возможно ли просто взять MSG в одиночку и делать с ним все, что я хочу.
По сути, есть другой способ получить сообщение окна, а затем обработать его, не похожий на общие циклы, найденные в этом нить?
РЕДАКТИРОВАТЬ:
В настоящее время я использую функцию GetMessage (), чтобы получить MSG
структурировать и использовать это в моем собственном обработчике событий, однако я не получаю все сообщения, которые я хочу с этим. Есть ли что-нибудь еще, что я должен сделать?
Заранее благодарю.
В настоящее время я использую функцию GetMessage (), чтобы получить структуру MSG
В чем проблема, GetMessage () извлекает только те сообщения, которые были отправлены в очередь сообщений. Оно делает не обнаружить сообщения, которые были отправлены с SendMessage (). Который обходит очередь сообщений и напрямую вызывает оконную процедуру.
Вы поэтому должен используйте WndProc, чтобы увидеть все сообщения для окна.
Подмножество опубликованных сообщений, которые попадают в очередь и, таким образом, возвращаются GetMessage (), является небольшим. В двух словах, входящие уведомления для мыши и клавиатуры и сообщения с низким приоритетом (WM_PAINT, WM_TIMER, WM_QUIT). WM_ACTIVATE всегда отправляется.
Замена WndProc окна, безусловно, является распространенной техникой, она называетсяподклассификация окна «. Любая оболочка библиотеки классов C ++ использует ее для отображения сообщений в методы C ++. Лучше не изобретать это колесо.
Других решений пока нет …