- •2. Цикл обработки сообщений (GetMessage):
- •3. Оконная функция, назначение, параметры, обработка сообщений:
- •4. Структура оконного класса, поля, их назначение, инициализация:
- •5. Классы окон, регистрация оконного класса:
- •6. Создание экземпляра оконного класса:
- •7. Отображение окна на экране:
- •8. Управление положением и размерами окна:
- •9. Обновление оконной области на экране.
- •10. Установки фона.
- •11. Курсор приложения. Типы курсоров, их прикрепление к приложению.
9. Обновление оконной области на экране.
Для обновления оконной области на экране в оконную функцию посылается сообщение WM_PAINT, но оно имеет наименьший приоритет по сравнению с другими функциями и поэтому для немедленной прорисовки рабочей области окна используют функцию UpdateWindow(hWnd):
switch (message)
{
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps); // Получаем дескриптор контекста устройства
// TODO: добавьте любой код отрисовки...
EndPaint(hWnd, &ps);
break;
}
10. Установки фона.
Фон окна можно изменить на этапе определения полей структуры оконного класса:
wcex2.hbrBackground = CreateSolidBrush(RGB(0,0,0));
Так же фон можно изменить при нажатии кнопки при помощи функции DestroyWindow().
11. Курсор приложения. Типы курсоров, их прикрепление к приложению.
Курсор задаётся при регистрации оконного класса. Для этого используется функция LoadCursor():
wcex.hCursor = LoadCursor(NULL, // Дескриптор приложения
IDC_CROSS); // Строка, определяющая курсор
В главном окне задан курсор IDC_CROSS, в дочерних окнах - IDC_IBEAM
Результат работы программы:
Рис.4 Скриншот рабочего приложения
Выводы:
В данной работе я изучил основы создания и управление окнами Windows-приложений на базе WIN32/64 API. Для создания окна требуется написать оконный класс, задав все поля структуры WINDCLASEX.
Научился создавать экземпляры оконного класса при помощи функции CreateWindow(). В программе требовалось создать дочерние окна и управлять их размерами, цветом фона и курсором, а так же изучил обработку нажатий кнопок мыши.