MFC - 获取特定窗口的设备上下文
Posted
技术标签:
【中文标题】MFC - 获取特定窗口的设备上下文【英文标题】:MFC - Getting device context of a specific window 【发布时间】:2015-08-05 07:15:01 【问题描述】:我是 MFC 的新手,并试图了解 MFC 的设备上下文和 UI 线程。
我创建了一个打开窗口的 UI 线程。 (我创建了一个对话框类,并在线程的 InitInstance 中调用了 doModal()。
现在我正在从这个 UI 线程创建另一个 WORKER 线程。
我想从工作线程访问由 UI 线程打开的窗口。
请建议我如何做到这一点。我在网上搜索了很多,我没有得到正确的答案。
【问题讨论】:
【参考方案1】:您不能在工作线程中处理 UI 对象。在这种情况下,最好的办法是在工作线程中做任何你需要的事情,一旦结果可用,通知 UI 线程。这可以通过带有成本 WM_ 的 CWnd.PostMessage 来完成...
UI 线程必须处理此消息并执行所需的 UI 处理。
【讨论】:
但我想从工作线程的 UI 线程的对话窗口上画一些波浪。我永远不能这样做吗? 根据msdn.microsoft.com/en-us/library/windows/desktop/…,您可以同步对图形资源的访问,但问题是对您控制的 GDI 函数的访问有很多。所以你最好将波浪坐标传递给 UI 线程并从那里进行绘图。 好吧..我明白这一点。谢谢你帮助我。但我还有一个澄清。多个 UI 线程无法打开同一个窗口对话框。正确吗? 是的,正确的。通常所有的 GUI 都由一个线程处理(即使您有多个窗口),而您可以有多个工作线程。 好的。知道了。谢谢。以上是关于MFC - 获取特定窗口的设备上下文的主要内容,如果未能解决你的问题,请参考以下文章