我最近开始使用win32 api并尝试做一些事情。
我有一个项目,将使用约4-5个窗口。我想将其中的每一个分成不同的cpp文件,其中每个文件都有自己的消息Loop。如何在窗口之间传递信息?(是否存在某种入口点?)我正在case WM_CREATE:
期间创建所有窗口,并且我会根据需要显示它们。
我想尝试一个漂亮的OOP设计,但遇到麻烦,我的主要问题是Windows之间的通信。我在C#和C ++方面有相当多的经验,除此之外,win32 api不是问题。
感谢您的帮助!
答案 0 :(得分:2)
我认为您不希望每个窗口的消息循环,除非您希望每个窗口都在自己的线程中。您可能需要一个窗口过程。
每个窗口类都有自己的窗口过程,您可以通过设置lpfnWndProc
结构的WNDCLASS
字段进行注册,然后再将其传递给RegisterClass。完成后,您可以在使用CreateWindow创建新窗口时使用该类。
在您的情况下,您可能希望实现窗口过程,以便它接受自定义消息(WM_APP + x
),然后使用PostMessage在Windows之间传递自定义消息(用于异步通信)或{ {3}}(用于同步通信)。如有必要,您可以为不同的窗口创建单独的窗口类和窗口过程。单个消息循环能够将消息泵送到所有这些过程。
答案 1 :(得分:1)