Я создал простое ленточное приложение 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"));
}
Вот моя проблема:
Случай: кнопка не нажата, т.е. мой цикл сообщений не работает
В этом случае, когда я нажимаю на поле редактирования, я сразу вижу мигающий курсор, который позволяет мне писать внутри поля редактирования. Здесь нет проблем.
Случай: кнопка нажата, т.е. мой цикл сообщений запущен
В этом случае, когда я нажимаю поле редактирования, я не вижу мигающий курсор, который позволяет мне писать внутри поля редактирования. Мне нужно дважды щелкнуть, чтобы появился мигающий курсор. Это проблема, я бы не хотел, чтобы пользователи дважды щелкали внутри окна, чтобы активировать его.
Подскажите, пожалуйста, в чем может быть причина и как сделать так, чтобы я мог одним щелчком мыши получить мигающий курсор внутри полей редактирования в случае, когда мой цикл сообщений работает в фоновом режиме.
Я в основном борюсь с реальной жизненной проблемой, и это упрощенная версия проблемы, и многое на кону, пожалуйста, помогите.
Задача ещё не решена.