如何使用 MFC 处理单独的窗口?

Posted

技术标签:

【中文标题】如何使用 MFC 处理单独的窗口?【英文标题】:How can i get handle for separate windows using MFC? 【发布时间】:2012-09-20 06:40:01 【问题描述】:

我是 MFC 的新手。谁能告诉我如何使用 MFC 处理单独的窗口。我的任务是截取不同窗口的屏幕截图并显示它。通过使用CWnd::GetDesktopWindow,我将使用桌面手柄。如果我想处理其他窗口,我怎么能得到它。现在,如果我想显示我捕获的桌面,我得到了桌面的句柄。请任何人帮助我。

【问题讨论】:

【参考方案1】:

这取决于您想要获得什么类型的窗口。要检索某些具有指定类名或标题的窗口,请使用 API FindWindow(...) 和 class&caption 作为输入;要获取桌面或某个***窗口下的所有子窗口,您可以在递归函数中使用 EnumWindows(...)。

【讨论】:

【参考方案2】:

为了获得桌面上所有窗口的句柄,您需要函数EnumWindows。

您为它提供一个回调函数,它会使用它找到的每个窗口的句柄来调用它。

要从 HWND 获取 MFC CWnd*,您可以这样做:

CWnd *const window = CWnd::FromHandle(hWnd);

【讨论】:

以上是关于如何使用 MFC 处理单独的窗口?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 MFC 在 CWinApp 中接收计时器事件?

如何使用 MFC 创建全屏窗口?

如何使用 MFC 分别创建两个窗口?

如何在单独的 mfc 控制台应用程序中使用 mfc 应用程序的对话框?

如何使用消息访问 mfc 控件?

Vc++ mfc 窗口类名如何修改