Понятие фокуса ввода
Клавиатура должна разделяться между всеми приложениями, работающими под Windows.
- Некоторые приложения могут иметь больше одного окна, и клавиатура должна разделяться между этими окнами в рамках одного и того же приложения.
Когда на клавиатуре нажата клавиша, только одна оконная процедура может получить сообщение об этом. Окно, которое получает это сообщение клавиатуры, является окном, имеющим фокус ввода.
- Концепция фокуса ввода тесно связана с концепцией активного окна.
Окно, имеющее фокус ввода – это либо активное окно, либо дочернее окно активного окна. Определить активное окно достаточно просто:
- если у активного окна имеется панель заголовка, то Windows выделяет ее;
- если у активного окна вместо панели заголовка имеется рамка диалога, то Windows выделяет ее;
- если активное окно минимизировано, то Windows выделяет текст заголовка в панели задач.
Наиболее часто дочерними окнами являются кнопки, переключатели и другие элементы управления, которые обычно присутствуют в окне диалога.
Сами по себе дочерние окна никогда не могут быть активными. Если фокус ввода находится в дочернем окне, то активным является родительское окно этого дочернего окна. То, что фокус ввода находится в дочернем окне, обычно показывается посредством мигающего курсора (для полей редактирования), рамки вокруг надписи на кнопке (для кнопок) или другими привлекающими внимание пользователя средствами.
Если активное окно минимизировано, то окна с фокусом ввода нет. Windows продолжает слать программе сообщения клавиатуры, но эти сообщения выглядят иначе, чем сообщения, направленные активным и еще не минимизированным окнам.
Обрабатывая сообщения WM_SETFOCUS и WM_KILLFOCUS, оконная процедура может определить, когда окно имеет фокус ввода. Сообщение WM_SETFOCUS показывает, что окно получило фокус ввода, а WM_KILLFOCUS – что окно потеряло его. В ответ на эти сообщения функция окна не может запретить получение или потерю фокуса ввода, так как эти сообщения носят чисто информирующий характер.
- Программный интерфейс Windows содержит две функции, позволяющие узнать или изменить окно, владеющее фокусом ввода, – GetFocus и SetFocus.
Замечание.Когда пользователь в программе набирает текст, обычно маленький символ подчеркивания, маленький прямоугольник или вертикальная черточка (или какой-либо другой признак) показывает ему место, где следующий набираемый символ появится на экране.
- При программировании для Windows этот признак называется каретка(caret). Слово же курсор относится к битовому образу, отражающему положение мыши на экране.
Дата добавления: 2017-01-26; просмотров: 1028;