О Функция SetWindowText(hWnd.<CipoKa текста>) выводит строку, заданную вторым параметром, в область заголовка окна.

Некоторые полезные функции и структуры данных О Функция GetWi ndowText (hWnd. s, L) читает заголовок окна hWnd в строку s, но при этом читается не более L символов.

О Функция GetWi ndowRect (hWnd. &Rect) заносит в структуру Rect экранные координаты левого верхнего и правого нижнего углов окна.

О Функция GetCl i entRect (hWnd, &Rect) заносит в структуру RECT Rect размеры рабочей области окна hWnd. Можно также считать, что эта функция получает координаты двух углов рабочей области, но в системе координат, связанной с рабочей областью, а не с экраном.

О Функция MoveWi ndow(hWnd. х .у, wi dth, hei ght) перемещает окно hWnd и дает ему новые размеры, которые указываются в параметрах width и height. Для главного окна х и у являются экранными координатами левого верхнего угла, а для дочернего - это координаты в системе окна-родителя.

О Функции CI ientToScreen() и ScreenToCl ient() преобразуют хранящиеся в структуре типа POINT координаты точки из системы, связанной с рабочей областью окна, в систему экрана и обратно. Результат они заносят в ту же структуру POINT Poi nt, из которой читают исходные координаты.

О Функция int GetSystemMetrics(int Index) возвращает разнообразные сведения о настройке системы.

В различных ситуациях у программиста возникает необходимость доступа к дескриптору приложения, получаемому первым параметром функции WinMainC). В примерах этой главы он использовался при регистрации оконного класса. Также он будет нужен при работе с ресурсами и при создании диалоговых окон. Заметим, что такой дескриптор есть у любого загруженного в память исполняемого модуля. В частности, приложение может затребовать дескриптор используемой им библиотеки DLL.

Еще чаще используется в программе дескриптор окна hWnd, возвращаемый функцией CreateWindowO. Во многих последующих примерах они сохраняются в глобальных переменных. Но следует заметить, что объявление переменных с глобальными областью видимости и временем жизни считается в настоящее время одним из основных источников ошибок, порождаемых скрытыми связями между подпрограммами. Поэтому у современных программистов их использование считается почти столь же неприличным, как десять лет назад применение оператора goto. В проектах, основанных на MFC, может существовать всего лишь одна глобальная переменная, а все остальные данные инкапсулируются в полях классов. Учитывая это, разработчики предусматривают средства получения различных дескрипторов по запросам к операционной системе. В частности, при помощи функции GetMenu(hWnd) можно получить дескриптор выведенного в окно hWnd меню, а дескриптор загруженного в оперативную память исполняемого модуля можно получить при помощи функции GetModul eHandl е(). Вызов функции GetModul eHandl е( "Mi nim. exe") возвратит значение 400 ООО, которое является дескриптором нашего приложения.


⇐ Предыдущая| |Следующая ⇒