Сообщение Re: CEdit состояние от 20.11.2020 7:00
Изменено 20.11.2020 7:01 qaz77
Re: CEdit состояние
Здравствуйте, reider, Вы писали:
R>Подскажите как понять готов ли контрол для ввода?
R>Иными словами хочу понять, как проверить какому контролу будут направляться команда WM_CHAR
Клавиатурный ввод поступает окну, которое в данный момент владеет фокусом ввода.
Получить такое окно для текущего потока можно функцией WinAPI: HWND GetFocus() или в MFC: static CWnd* CWnd::GetFocus().
Окно при этом должно быть видимо и доступно (enabled).
Также часть клавиатурного ввода может быть перехвачена акселераторами непосредственно в цикле обработки сообщений.
Но то, что транслируется в WM_CHAR обычно не перехватывают.
В MFC можно, например, так сделать:
[сcode]
CEdit* pEditInFocus = DYNAMIC_DOWNCAST(CEdit, CWnd::GetFocus());
if (pEditInFocus) { ... }
[/сcode]
R>Подскажите как понять готов ли контрол для ввода?
R>Иными словами хочу понять, как проверить какому контролу будут направляться команда WM_CHAR
Клавиатурный ввод поступает окну, которое в данный момент владеет фокусом ввода.
Получить такое окно для текущего потока можно функцией WinAPI: HWND GetFocus() или в MFC: static CWnd* CWnd::GetFocus().
Окно при этом должно быть видимо и доступно (enabled).
Также часть клавиатурного ввода может быть перехвачена акселераторами непосредственно в цикле обработки сообщений.
Но то, что транслируется в WM_CHAR обычно не перехватывают.
В MFC можно, например, так сделать:
[сcode]
CEdit* pEditInFocus = DYNAMIC_DOWNCAST(CEdit, CWnd::GetFocus());
if (pEditInFocus) { ... }
[/сcode]
Re: CEdit состояние
Здравствуйте, reider, Вы писали:
R>Подскажите как понять готов ли контрол для ввода?
R>Иными словами хочу понять, как проверить какому контролу будут направляться команда WM_CHAR
Клавиатурный ввод поступает окну, которое в данный момент владеет фокусом ввода.
Получить такое окно для текущего потока можно функцией WinAPI: HWND GetFocus() или в MFC: static CWnd* CWnd::GetFocus().
Окно при этом должно быть видимо и доступно (enabled).
Также часть клавиатурного ввода может быть перехвачена акселераторами непосредственно в цикле обработки сообщений.
Но то, что транслируется в WM_CHAR обычно не перехватывают.
В MFC можно, например, так сделать:
R>Подскажите как понять готов ли контрол для ввода?
R>Иными словами хочу понять, как проверить какому контролу будут направляться команда WM_CHAR
Клавиатурный ввод поступает окну, которое в данный момент владеет фокусом ввода.
Получить такое окно для текущего потока можно функцией WinAPI: HWND GetFocus() или в MFC: static CWnd* CWnd::GetFocus().
Окно при этом должно быть видимо и доступно (enabled).
Также часть клавиатурного ввода может быть перехвачена акселераторами непосредственно в цикле обработки сообщений.
Но то, что транслируется в WM_CHAR обычно не перехватывают.
В MFC можно, например, так сделать:
CEdit* pEditInFocus = DYNAMIC_DOWNCAST(CEdit, CWnd::GetFocus());
if (pEditInFocus) { ... }