我最近开始使用win32应用程序接口,并尝试做一些事情。我有一个项目,将使用大约4-5个窗口。我想将它们分别放到一个不同的cpp文件中,每个文件都有自己的消息循环。如何将信息从一个窗口传递到另一个窗口?(是否有某种入口点?)目前,我在case WM_CREATE:期间创建了所有窗口,并根据需要显示它们。
我试图有一个很好的OOP设计,但遇到了问题,我的主要问题是窗口之间的通信。我在C#和C++方面有相当多的经验,除此之外,win32应用编程接口不是问题。
谢谢你的帮忙!
发布于 2012-03-23 07:28:30
我不认为你想要一个每个窗口的消息循环,除非你希望每个窗口都在它自己的线程中。相反,您可能需要一个窗口过程。
每个窗口类都有自己的窗口过程,在将其传递给RegisterClass之前,可以通过设置WNDCLASS结构的lpfnWndProc字段来注册该过程。完成此操作后,您可以在使用CreateWindow创建新窗口时使用该类。
在您的示例中,您可能希望实现窗口过程,使其接受自定义消息(WM_APP + x),然后使用PostMessage (用于异步通信)或SendMessage (用于同步通信)在窗口之间传递自定义消息。如有必要,可以为不同的窗口创建单独的窗口类和窗口过程。单个消息循环能够将消息发送到所有这些过程。
发布于 2012-03-23 07:11:32
窗口间通信的经典方式是发送/发布消息:
SendMessage
PostMessage
https://stackoverflow.com/questions/9831828
复制相似问题