【发布时间】:2014-03-09 05:53:05
【问题描述】:
您好,感谢您抽出宝贵时间查看我的问题。
我正在制作一个使用 Win32 API 创建初始程序窗口的 C++ 程序。然后我创建一个线程来创建一个子窗口,并将我的 Awesomium WebView 附加到这个子窗口。
我了解 Awesomium 不是线程安全的,但文档声明它是线程安全的,只要您在创建它的线程中使用它,它就允许您在备用线程中使用 Awesomium。
现在讨论这个问题。我在从该线程接收输入回 WinProc 时遇到问题。如果我尝试在此子窗口的父级 Awesomium 中单击鼠标,则我不能再在屏幕上拖动主窗口或使用最小化/最大化/关闭按钮,也不能实际单击 awesomium 窗口内的任何内容有任何效果. 我做了很多研究,发现 AttachThreadInput() 但这似乎没有帮助。
有谁知道我如何在 WinProc 中向/从该线程发送/接收消息?
当前代码在这里:http://pastebin.com/i4kNHcch
非常感谢您的宝贵时间。
【问题讨论】:
-
请发布您的代码,如果我们看到您已经尝试过,我们可以提供更具体的建议或者指出您哪里出错了。
-
也许是我,但是“只要您在创建它的线程中使用它,就允许您在备用线程中使用 Awesomium”......什么?
-
Awesomium 不是线程安全的,您不能在不同的线程中使用不同的部分,但是您可以在备用线程中使用它,只要它在该线程中完全使用即可。我现在正在上传到 pastebin。
-
为什么要在单独的线程中查看 Web 视图?有没有在专用线程中运行的 windows 消息循环?
标签: c++ multithreading winapi message-queue awesomium