![]() |
1
2
在createWindow()调用中,将0传递到位置和大小参数中。
下面是我对你想做的事情的解释,至少考虑到儿童窗。(我仍然不明白为什么需要第二个线程,但一次出现一个问题。)
我在一个名为demo.c的文件中有这个确切的代码,并使用MS Visual Studio Express 2005来编译它
…我有两扇窗户。为了区分我有两个窗口类,其中一个通过按Esc退出,另一个通过大写X退出。 为发布第二条回复而道歉。我的另一个回答是非常普遍的,可能只是OBE,因为OP提供了更多的细节。 |
![]() |
2
4
您应该能够使用createWindow()创建另一个辅助窗口,并且标准的getMessage()dispatchMessage()循环实际上应该将窗口事件提供给两个窗口。Windows将以某种方式将调用CreateWindow的线程与这些窗口上的窗口事件相关联,并通过对GetMessage()的调用将这两个线程的事件都提供给它。您不必制作第二个线程来处理第二个窗口的事件。 现在,如果将同一个窗口类名传递给对createWindow()的两个调用,则应该有同一个窗口类的两个实例,并且区分它们的方法是,在wndproc中,DispatchMessage将为您提供相关窗口的窗口句柄。如果这样做,请注意,任何对应用程序静态的数据实际上都将成为这两个窗口之间的共享资源。例如,如果静态地声明一个屏幕外位图/设备上下文来支持wm_绘制,您可能会突然发现两个窗口都在绘制以响应其中一个窗口上的事件。获得这种纠缠的可能性是为了在线程之间轻松共享数据而付出的代价。 您可以只使用一个线程,前提是您打算使用它进行的工作不会将消息队列的处理捆绑到用户遇到滞后控制的地方。 |
|
vini · 安装wfp内核驱动程序后,devcon状态返回39 3 年前 |
![]() |
I101I · 如何镜像HBITMAP 3 年前 |
![]() |
E235 · 如何查看谁创建了Windows NamedPipe 3 年前 |
![]() |
Pizza Ãcke · 创建带有内存映像的Windows托盘图标 3 年前 |
![]() |
Jabu · 如何获取列表框滚动条“拇指”的高度? 3 年前 |
![]() |
tree1234 · 对可执行文件进行代码设计,并允许修改某些字节 3 年前 |
![]() |
Penachia · PDF FontDescriptor标志 7 年前 |