【发布时间】:2015-02-26 00:21:00
【问题描述】:
我们有一个 MFC 应用程序,它以嵌入式模式运行,并通过其 COM 接口通过其他应用程序调用。在嵌入模式下,它不应该获得焦点,但正如我们所见,它正在获得焦点,并且用户键盘输入从当前应用程序更改为我们的 MFC 应用程序。
我一直在寻找一种解决方法,以便在嵌入式运行的 MFC 应用程序获得焦点后立即移除焦点。
对于解决方法,我通过映射消息 WM_SETFOCUS 注册了 OnSetFocus() 方法,并尝试使用以下窗口 api SetWindowPos() 从我的 MFC 应用程序中移除焦点,但这也无济于事。
void CTestMFCApplicationView::OnSetFocus(CWnd* pOldWnd)
{
CView::OnSetFocus(pOldWnd);
OutputDebugString(L"OnSetFocus\r\n");
// TODO: Add your message handler code here
CView::SetWindowPos(&CWnd::wndBottom, 0, 0, 0, 0,
SWP_NOACTIVATE);
}
【问题讨论】:
标签: visual-c++ com mfc