Сообщение Windows 9 от GetMessage?

РЕДАКТИРОВАТЬ: Удалить код, который я вставил сюда. Ошибка в моем коде приводила к описанному поведению (отсутствует break в заявлении переключателя).

В switch заявление, которое обрабатывало сообщения от GetMessageЯ добавил целочисленные значения для пары сообщений, для которых не определены псевдонимы (используя список, который я нашел здесь: http://www.mazama.net/scheme/v12/w32message.scm) с сообщениями, которые появляются, если одно из этих сообщений было получено. Я ожидал, что неназванные сообщения просто устаревают и никогда не появятся.

Я также попробовал код под WM_ACTIVATE это должно было минимизировать окно, если бы я щелкнул по нему. Я что-то напутал, поэтому окно сворачивается, как только открывается, но это не то, что привело меня сюда. Как только окно открывается и сворачивается, появляется окно сообщения, сообщающее мне о отправленном Windows сообщении 9. Если я отклоняю его, окно сообщения снова появляется.

Так что меня удивило, кто-нибудь знает, какое событие вызывает это сообщение? Или, в этом отношении, любое из целочисленных значений, возвращаемых GetMessage, которые не имеют псевдонима? Все, что я нашел в списке сообщений Windows, пропускает те же цифры, что и ссылка, которую я разместил выше.

0

Решение

Сообщения с низким номером, которые не перечислены в общедоступных заголовочных файлах, скорее всего, являются устаревшими сообщениями Windows 3.1 (или более ранних версий), которые сохраняются для совместимости (или потому, что никто в Microsoft не решил, что это достаточно важно, чтобы удалить их).

Вы можете найти в них подсказку в различных проектах по замене Windows, таких как Wine или ReactOS. На самом деле, из заголовков ReactOS:

#define WM_SETVISIBLE      0x00000009

Это, кажется, предшественник WM_SHOWWINDOW сообщение и отправляется одновременно с одинаковыми аргументами.

Я также нашел обсуждение сообщения 0x0004 в ветка новостной группы, о котором даже ReactOS, похоже, не знает. Там сообщение описано как WM_SIZEWAIT но нет понятия о его функции.

Короче говоря, эти сообщения недокументированы по какой-то причине — они не нужны или не используются каким-либо программным обеспечением, для которого вы пишете, и вы должны просто игнорировать их.

0

Другие решения


По вопросам рекламы [email protected]