每个窗口的Win32 api类不同
Win32 api different classes per window?
ive最近开始使用win32api,我正在尝试做一些事情。我有一个项目,将使用大约4-5个窗口。我想将其中的每一个分离到一个不同的cpp文件中,每个文件都有自己的消息循环。如何将信息从一个窗口传递到另一个窗口?(有什么入口点吗?)目前我正在case WM_CREATE:
期间创建所有窗口,并根据需要显示它们。
我试图有一个很好的OOP设计,但遇到了麻烦,我的主要问题是窗口之间的通信。我在C#和C++方面有相当多的经验,除此之外,win32api也不是问题。
谢谢你的帮助!
我认为您不想要每个窗口的消息循环,除非您希望每个窗口都在自己的线程中。您可能需要一个窗口过程。
每个窗口类都有自己的窗口过程,在将其传递给RegisterClass之前,您可以通过设置WNDCLASS
结构的lpfnWndProc
字段来注册该过程。完成后,可以在使用CreateWindow创建新窗口时使用该类。
在您的情况下,您可能希望实现窗口过程,使其接受自定义消息(WM_APP + x
),然后使用PostMessage(用于异步通信)或SendMessage(用于同步通信)在窗口之间传递自定义消息。如有必要,可以为不同的窗口创建单独的窗口类和窗口过程。单个消息循环能够将消息泵送到所有这些过程。
窗口间通信的经典方式是发送/张贴消息:
SendMessage
PostMessage
相关文章:
- C++win32 API创建多个类似视口的窗口
- 使用 WIN32 API (C/C++) 对特定树视图项进行着色
- Issues with Win32 ReadProcessMemory API
- Win32 API 控制台光标在 WriteConsole 后不移动
- Win32 API - HWND "{unused = ???} Unable to read memory"错误
- 调用 Win32 API 函数时未定义的引用
- Visual C++ Win32 API 代码来拦截某个击键
- 消息框在WM_COMMAND内不起作用!(WIN32 API)
- 使用WIN32 API的击球平均计算器
- 在使用 c++ 的 win32 api 中,我想跟踪双击和三次单击等
- 带有 win32 低级别消息 API 的 CAdES 签名
- SDL2 + Win32 API 菜单栏单击事件不起作用
- WM_PAINT和鼠标事件.MFC/WIN32 API.
- 我可以在没有C++的情况下学习 Win32 API(仅使用 C)吗?
- 如何检查 win32 exe 文件是否已运行?(使用 win32 API 代码)
- 在 Win32 API 中使用多线程
- 如何使用 Win32 API 从 Excel VBA 中的非"Single-Threaded Apartment"线程调用 InternetGetProxyInfo
- 引发访问冲突的 Win32 API 调用
- 如何使用 Win32 ThreadPool API?
- C Win32 API在按钮区域内通知鼠标