将Windows消息发送到控制台应用程序

时间:2016-03-16 18:16:31

标签: c++ winapi dll console-application

我有一个DLL向UI应用程序发送消息,DLL发送的大多数消息都包含文本,GUI应用程序获取消息并根据消息行动。

我需要创建一个使用相同DLL的控制台应用程序,是否有任何选项可以将消息传递给控制台应用程序,如在控制台应用程序中我没有Windows消息过程。

在GUI应用程序中,我加载DLL并使用其中一个函数将我当前的HWND设置为DLL,一旦执行此操作,所有消息都将发送到我的GUI。

我考虑过向DLL添加一个布尔值,以了解DLL是从GUI界面还是从命令行控制台应用程序调用,但这涉及到DLL代码中的大量更改。

如何获取或重定向消息到控制台应用程序(命令行界面)?

DLL,GUI和控制台应用程序使用win32 API以C / C ++编码。

提前致谢

1 个答案:

答案 0 :(得分:5)

您可以在控制台应用程序中创建一个窗口,就像在标准Windows应用程序中一样。如果您创建message only window(在调用HWND_MESSAGE时将窗口的父级设置为CreateWindow()),则它将不可见,但仍可以接收Windows消息。您需要在控制台应用程序中的某处运行标准Windows消息循环,以便将消息分派到您的窗口。