powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Теряется фокуса дочерних окон
10 сообщений из 10, страница 1 из 1
Теряется фокуса дочерних окон
    #33195103
SeraTJ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hi, all!

(MFC)
В моем окне много детей, которые могут иметь фокус.
После переключения на какое-то другое приложение фокус из одного из моих дочерних окон пропадает.

Какие есть хорошие способы для решения такой задачи?

(
Сейчас пробую примерно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
void CMainFrame::OnActivate( UINT nState, CWnd*, BOOL )
{
	if (nState == WA_INACTIVE)
	{
		m_pWndLastFocused = GetFocus();
	}
	else
	{
/*		if (m_pWndLastFocused)
		{
			m_pWndLastFocused->SetFocus();
		}
*/
	}
}
но это совсем неверно.
)

Спасибо,
SeraTJ

p.s. Смотрю, что некоторые непрофессиональные программы тоже этим страдают, похоже, разработчики не стали решать эту проблему.
...
Рейтинг: 0 / 0
Теряется фокуса дочерних окон
    #33195128
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не понял. Переключение на другую программу ДОЛЖНО забирать фокус у твоих дочерних окон. В чем ты видишь проблему?
...
Рейтинг: 0 / 0
Теряется фокуса дочерних окон
    #33195799
SeraTJ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Переключение на другое приложение, а затем снова возврат на мое. До переключения фокус был в одном из дочерних окон. А после переключения при возврате на мое приложение ни одно из дочерних окон не имеет фокуса ввода.
А по-хорошему его нужно сохранять.


К примеру, пишешь в edit-е, захотел откуда-то скопировать слово, переключился, вернулся, а фокуса в edit-е нет. То есть нужно брать мышку...
...
Рейтинг: 0 / 0
Теряется фокуса дочерних окон
    #33195901
Monoceros
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну а что мешает тебе запоминать у кого был фокус ввода в событии OnDeactivate и восстанавливать в OnActivate? В принципе запоминать можно и сразу после получения элементами фокуса ввода
...
Рейтинг: 0 / 0
Теряется фокуса дочерних окон
    #33197587
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeraTJПереключение на другое приложение, а затем снова возврат на мое. До переключения фокус был в одном из дочерних окон. А после переключения при возврате на мое приложение ни одно из дочерних окон не имеет фокуса ввода.
А по-хорошему его нужно сохранять.
Никогда не видел такого глюка. Наверное потому что я не использую MFC? :)
...
Рейтинг: 0 / 0
Теряется фокуса дочерних окон
    #33197775
SeraTJ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SeraTJ
Переключение на другое приложение, а затем снова возврат на мое. До переключения фокус был в одном из дочерних окон. А после переключения при возврате на мое приложение ни одно из дочерних окон не имеет фокуса ввода.


Это не так для диалогов, потому что диалог сам хранит последнее активное окно и OnSetFocus восстанавливаете его.
А вот если исп. свое окно с кучей дочерних (к примеру, CFrameWnd со Splitterом, соединяющим 2 listview-a), то здесь это проявляется.
...
Рейтинг: 0 / 0
Теряется фокуса дочерних окон
    #33200383
SeraTJ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White OwlНикогда не видел такого глюка.

О! Нашла. MS VC++ 7.1. Захожу в project settings. Пишу в поле ввода что-то, потом переключаюсь на другую программу. Возвращаюсь -- а ФИГА! фокуса нет. Он вообще нигде не установлен.
Вот. Люди-то серьезные писали, и то -- забыли/не заметили/не сочли важным...
...
Рейтинг: 0 / 0
Теряется фокуса дочерних окон
    #33540228
Max_Хацкер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как лечить-то в итоге?

У меня таже проблема, правда я на Delphi 2005. Есть главное окно в котором слева присобачено дерево и спилиттер. Открываю через команду меню дочернее окно. Все нормально, фокус есть. Стоить мне переключиться на дерево, как дочернее фокус теряет навеки. Возвращается только когда создашь новое окно или, если их уже больше одного, переключишься на другое и вернешся обратно. Тогда фокус восстанавливается.
...
Рейтинг: 0 / 0
Теряется фокуса дочерних окон
    #33541686
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeraTJА по-хорошему его нужно сохранять.


Его не нужно сохранять, он сам сохраняется. Если нет - нужно искать, где он портится, а не пытаться его сохранить.

Ну и естественно, если пользователь тыкает мышкой в КОНКРЕТНЫЙ контрол, то фокус перейдет туда. Это нормально.
...
Рейтинг: 0 / 0
Теряется фокуса дочерних окон
    #33541692
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlНикогда не видел такого глюка. Наверное потому что я не использую MFC? :)

Нет, потому что ты хороший программист
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Теряется фокуса дочерних окон
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]