我使用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"));
}
这是我的问题:
案例:未点击按钮,即我的消息循环未运行
在这种情况下,当我点击编辑框时,我立即看到闪烁的光标,让我在编辑框内写字。这里没问题。
案例:点击了按钮,即我的消息循环正在运行
在这种情况下,当我单击一个编辑框时,我看不到一个闪烁的光标,让我在编辑框内写。我需要双击以显示闪烁的光标。这是一个问题,我想避免让用户在框内双击只是为了激活它。
你能否告诉我可能是什么原因,以及如何在我的消息循环在后台运行的情况下,只需单击一下即可在编辑框中获取闪烁的光标。
我基本上是在解决现实生活中遇到的问题,这是问题的简化版本,很多都在线,请帮助。