Окно сообщения C ++ класса Win32 / пример
Вопрос
Существует ли класс / пример приложения для окна только для сообщений на C ++ Win32?
Решение
Если я вспоминаю, стандартное решение состоит в том, чтобы создать простое окно без стилей с насосом сообщений, как обычно, но никогда не вызывать ShowWindow для него. Таким образом, вы можете получать и обрабатывать стандартные сообщения, такие как WM_QUERYENDSESSION, которые отправляются во все окна.
Другие советы
Из документов для Создать окно:
hwndParent [in] Дескриптор родительского окна или окна владельца создаваемого окна.Чтобы создать дочернее окно или принадлежащее окно, укажите допустимый дескриптор окна.Этот параметр необязателен для всплывающих окон .
Windows 2000/XP: Чтобы создать окно только для сообщений, укажите HWND_MESSAGE или дескриптор для существующего окна только для сообщений.
Здесь это какой-то код, по-моему, из WebKit, который настраивает окно только для сообщений для событий таймера.
Вот статья, в которой показан (возможно, чрезмерно) причудливый способ создания невидимого окна только для сообщений: http://www.codeguru.com/cpp/w-p/win32/tutorials/article.php/c12689
Окно только для сообщений используется, когда вам нужно обрабатывать сообщения Windows в потоке, но на самом деле вы не хотите отображать окно на экране.
Например, если вы хотите использовать таймер Windows, но у вас нет существующего окна пользовательского интерфейса, к которому можно привязаться.