MFC功能区编辑控件需要双击才能激活

时间:2014-08-29 22:34:29

标签: c++ user-interface mfc message-queue ribbon

我使用App Wizard创建了一个简单的MFC功能区应用程序。然后,我删除了功能区中的所有控件,并添加了一个简单的按钮,两个编辑框,并为每个编辑框添加了事件处理程序。

按钮的事件处理程序是一个简单的消息循环,如下所示:

void CRibbon2Doc::OnButton(){
    MSG msg;
    while (1){
        while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)){
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
    }
}

两个编辑框的消息处理程序也很简单,如下所示:

void CRibbon2Doc::OnEdit1(){
    OutputDebugString(_T("Box1"));
}


void CRibbon2Doc::OnEdit2(){
    OutputDebugString(_T("Box2"));
}

这是我的问题:

案例:未点击按钮,即我的消息循环未运行

在这种情况下,当我点击编辑框时,我立即看到闪烁的光标,让我在编辑框内写字。这里没问题。

案例:点击了按钮,即我的消息循环正在运行

在这种情况下,当我单击一个编辑框时,我看不到一个闪烁的光标,让我在编辑框内写。我需要双击以显示闪烁的光标。这是一个问题,我想避免让用户在框内双击只是为了激活它。

你能否告诉我可能是什么原因,以及如何在我的消息循环在后台运行的情况下,只需单击一下即可在编辑框中获取闪烁的光标。

我基本上是在解决现实生活中遇到的问题,这是问题的简化版本,很多都在线,请帮助。

0 个答案:

没有答案