Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ІК (Говорущенко) Методичка.doc
Скачиваний:
6
Добавлен:
23.02.2016
Размер:
762.88 Кб
Скачать

Створення вікон

Для створення вікна викликають функцію CreateWindow. Вона створює тимчасове, дочірнє вікно або вікно, що перекривається, і встановлює початкові значення деяких його параметрів. Ця функція оголошена так:

HWND CreateWindow(

LPCTSTR lpClassName, //ім’я зареєстрованого класу

LPCTSTR lpWindowName, //ім’я вікна

DWORD dwStyle, //стиль вікна

int x, //координата лівого краю вікна

int y, //координата верхнього краю вікна

int nWidth, //ширина вікна

int nHeight, //висота вікна

HWND hWndParrent, //дескриптор вікна-батька або вікна-власника

HMENU hMenu, //дескриптор меню або ідентифікатор

//створюваного дочірнього вікна

HANDLE hInstance, //дескриптор додатку

LPVOID lpParam //вказівник на дані вікна);

Перед створенням вікна функція CreateWindow надсилає код повідомлення WM_CREATE функції створюваного вікна. Вона потім обробляє значення, що повертається функцією вікна, або не створює вікна, якщо воно дорівнює –1. Відповідно функціяCreateWindowповертає дескриптор вікна абоNULL.

Стиль вікна задає зовнішню поведінку вікна. Для опису стиля вікна використовують символічні константи з префіксом WS_ (табл.1.2).

Таблиця 1.2. Список значень стилів вікон

Значення

Пояснення

1

2

WS_BORDER

Вікно з тонкою рамкою

WS_CAPTION

Вікно із заголовком (включає стиль WS_BORDER)

WS_CHILD або WS_CHILDWINDOW

Дочірнє вікно. Воно не може мати меню. Несумісний з WS_POPUP

WS_CLIPCHILDREN

Вікно не перемальовує ті області, які затінені власними дочірніми вікнами

WS_CLIPSIBLINGS

Дочірнє вікно не перемальовує ті області, які затінені іншими дочірніми вікнами того ж батька

WS_DISABLED

Створити заблоковане вікно

WS_DLGFRAME

Вікно з подвійною рамкою без заголовка

WS_HSCROLL

Вікно з горизонтальною смугою перегляду

WS_ICONIC або WS_MINIMIZE

Початково згорнуте в піктограму вікно

WS_GROUP

Визначає перший елемент групи органів управління, яка складається з цього елемента та слідуючих за ним елементів до елемента зі стилем WS_GROUP. Перші елементи груп мають стиль WS_TABSTOP, щоб користувач міг пересуватись між групами натисканням клавіш Tab. Всередині групи від елемента до елемента переходять за допомогою стрілок

WS_MAXIMIZE

Вікно максимально можливого розміру

WS_MAXIMIZEBOX

Вікно з кнопкою відновлення/максимізації розміру. Використовують з WS_OVERLAPPED і WS_CAPTION

WS_POPUP

Тимчасове вікно

1

2

WS_MINIMIZEBOX

Вікно з кнопкою згортання вікна в піктограму. Використовують зі стилями WS_OVERLAPPEDіWS_CAPTION

WS_OVERLAPPED або WS_TILED

Вікно з заголовком і рамкою, що перекривається

WS_OVERLAPPEDWINDOW або WS_TILEDWINDOW

Вікно стилів WS_OVERLAPPED, WS_CAPTION, WS_SYSMENU, WS_THICKFRAME, WS_MINIMIZEBOX, WS_MAXIMIZEBOX

WS_POPUPWINDOW

Вікно стиля WS_POPUP, WS_BORDER, WS_SYSMENU. Для відображення системного меню додають WS_CAPTION

WS_SIZEBOX або WS_THICKFRAME

Вікно з товстою рамкою для зміни розмірів вікна

WS_SYSMENU

Вікно з системним меню. Об’єднують з WS_CAPTION

WS_TABSTOP

Елемент управління, який одержує фокус введення при натисканні клавіші Tab

WS_VISIBLE

Вікно стає видимим одразу після створення

WS_VSCROLL

Вікно з вертикальною смугою перегляду

За сукупністю властивостей розрізняють вікна, що перекриваються (оverlapped), тимчасові(pop-up) та дочірні (сhild) вікна.

Вікна, що перекриваються, найчастіше використовують в якості вікна додатки. Вони завжди мають заголовок (titlebar), рамку і робочу область вікна (clientregion), можуть мати системне меню, кнопки відновлення розмірів, закриття і згортання вікна в пікторгамму, горизонтальну та вертикальну смуги перегляду (scrollbar), меню, панель інстурментів (toolbar) і рядок стану (statusbar).Базовий стиль таких вікон описаний константоюWS_OVERLAPPED. Частіше використовуваний стиль віконWS_OVERLAPPEDWINDOWна додаток до базового вказує, що вікно має системне меню, кнопки відновлення розмірів, закриття і згортання вікна. Вікно, що перекривається, може належати вікну-власнику. Якщо вікно-власник згортається, то підлеглі йому вікна стають невидимими. При знищенні вікна автоматично знищуються підлеглі йому вікна. Підлеглі вікна завжди розташовуються над поверхнею вікна-власника, відгорожуючи його.

Тимчасові вікназвичайно використовують для виведення повідомлень користувачу і залишаються на екрані нетривалий час. Базовий стиль тимчасового вікна описаний константоюWS_POPUP. Таке вікно за замовчуванням не має заголовка. Частіше тимчасове вікно описують константоюWS_POPUPWINDOW. Для додавання до тимчасового вікна системного меню і заголовка стильWS_POPUPWINDOWкомбінують зі стилемWS_CAPTION. В усьому останньому тимчасові вікна – це спеціальний вид вікон, що перекриваються.

Дочірні вікнавикористовують для створення органів управління. Визначені системою класи органів управління (кнопки, смуги перегляду і т.п.) представляють собою дочірні вікна. Базовий стиль дочірніх вікон описаний константоюWS_CHILD. Цей стиль повністю співпадає зі стилемWS_CHILDWINDOW. Дочірні вікна не мають кнопок зміни розміру, але завжди мають вікно-батько. Вони прилипають до поверхні бітька, пересуваються з ним і не виходять за його межі.