Windows API содержит множество функций, связанных с созданием окон. Это функции поиска, определения состояния, перемещения окон, а также обмена сообщениями с пользователем.
Функции поиска и определения состояния окон
Часто требуется определить, существует ли окно для некоторого дескриптора. На этот вопрос отвечает функция IsWindow:
BOOL IsWindow(HWND hwnd);
Если окно с дескриптором hwnd существует, функция возвращает ненулевое значение, иначе – нуль.
Если нужно определить, имеет ли заданное окно фокус ввода, вызывают функцию IsWindowEnabled:
BOOL IsWindowEnabled(HWND hwnd);
Если окно hwnd активно, функция возвращает ненулевое значение, иначе – нуль.
Для передачи или отнятия фокуса ввода у окна вызывают функцию EnableWindow:
BOOL EnableWindow(HWND hwnd, BOOL bEnable);
При bEnable = TRUE фокус ввода передают окну hwnd, иначе – блокируют это окно.
Если окно ранее было неактивно, возвращаемое значение отлично от нуля. Если окно было активно, возвращаемое значение – нуль.
Фокус ввода окну hwnd передают с помощью функции SetFocus:
SetFocus(hwnd);
|
|
Следующая функция возвращает ненулевое значение, если окно hwnd свернуто в пиктограмму:
BOOL IsIconic(HWND hwnd);
Функция FindWindow у операционной системы запрашивает дескриптор окна (не дочернего) класса lpClassName с заголовком lpWindowName. Эта функция объявлена следующим образом:
HWND FindWindow(LPCTSTR lpClassName, LPCTSTR lpWindowName);
Если lpWindowName = NULL, то заголовок искомого окна может быть любым. Если lpClassName = NULL, искомое окно может принадлежать к любому классу. Рекомендуется указывать данные как можно более подробнее. Если такое окно найдено, функция возвращает его дескриптор, иначе – NULL.