Win32、WndProc 和父子窗口

发布于 2024-08-11 05:27:44 字数 264 浏览 4 评论 0原文

我正在用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

把昨日还给我 2024-08-18 05:27:44

如果我正确理解您的问题,您应该期望您的 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文