我想知道在EN之后焦点所在的位置

现在我已经构建了我的应用程序:它运行在Internet浏览器(IE,FireFox,Chrome等)的容器中。 在我的程序中有一个无模式对话框,对话框包含一个CEdit控件。

这是我的问题:当用户激活编辑控件键入的东西,编辑控件获得焦点。 当编辑控件失去焦点时,我必须检查输入是否有效。 如果不是,我将显示一个模型对话框

AfxMessageBox的

。 但是现在我无法确定我的编辑控件是否会在我自己的应用程序中失败。 因为编辑控件可能会失去很多重点,例如,当用户关闭浏览器时,用户打开文本程序时。 在这些情况下,我会跳过无效检查。

任何人都可以告诉我如何找到我的编辑控件失去焦点的方式。


调用GetFocus()并查看焦点是否已返回到线程中的另一个窗口。

HWND hwndFocus = ::GetFocus();
if (hwndFocus != 0 && ::GetWindowThreadProcessId(hwndFocus, NULL) == ::GetCurrentThreadId())
{
    // focus still in our thread
}
链接地址: http://www.djcxy.com/p/39257.html

上一篇: I want to find out where the focus belongs after EN

下一篇: Hidden dialog takes focus for a moment