Win32、WndProc 和父子窗口
我正在用 C 代码进行开发,使用 Win32 Api 创建多个窗口。 我使用了 createWindow
两次 - 创建父窗口和子窗口。 我有一个消息循环
while ( GetMssage (&msg, NULL,0,0)){
.
translate
dispatch
.
}
,但我只调用了一次 WND_Proc
函数,而不是每个窗口调用两次。
我做错了什么?
I'm developing in C code that uses the Win32 Api to create multiple windows.
I used createWindow
twice - to create parent and child windows.
I have a message loop
while ( GetMssage (&msg, NULL,0,0)){
.
translate
dispatch
.
}
But I only get the WND_Proc
function called once, instead of twice for each of the windows.
What am I doing wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果我正确理解您的问题,您应该期望您的 WndProc 为注册 WndProc 的窗口类创建的每个窗口接收一条 WM_CREATE 消息。
对于您创建的不同类(例如标准 Windows UI 控件)的窗口,您的 WndProc 不会收到 WM_CREATE,即使它是 WndProc 类的窗口的直接子级。如果您向我们提供了有关您想要实现的目标的更多具体信息,我们可以提供建议或解决方法。
这个问题也可能会带来更多启发根据你的情况。
If I'm understanding your question correctly, you should expect your WndProc to receive a single WM_CREATE message for each window created of the window class for which the WndProc is registered.
Your WndProc will not receive a WM_CREATE for a window you create of a different class (like the standard Windows UI controls, for example), even if it is a direct child of a window of the WndProc's class. If you gave us some more specifics on what you are trying to accomplish we could provide suggestions or workarounds.
This question may also shed some more light on your situation.