Как я могу заставить мое консольное приложение получать оконные сообщения? - PullRequest
6 голосов
/ 21 ноября 2010

Мне нужно написать обработчик сообщений в моем консольном приложении, которое обрабатывает полученные сообщения. Например, я регистрирую WM_Test и отправляю его в свое консольное приложение следующим образом:

var
  H: THandle;
begin
  H:= FindWindow('ConsoleWindowClass', nil);
  PostMessage(H, WM_Test, 0, 0);
end;

Теперь я хочу, чтобы при получении этого сообщения в моем консольном приложении отображалось окно сообщения.

Могу ли я использовать PeekMessage или AllocateHWND в консольных программах?

Я знаю, что могу сделать эту работу с pipe , но я хочу знать, могу ли я сделать это с сообщением в окне.

1 Ответ

5 голосов
/ 21 ноября 2010

Да, вы можете. Используйте AllocateHWND для создания дескриптора окна. Затем вы можете установить различные свойства (например, имя), чтобы найти его с помощью FindWindow.

...