SlideShare a Scribd company logo
1 of 19
WinAPI
Модуль 1.2
Типи даних в WinAPI
 Основні типи даних
Andrey Gladky
KspDevelop@gmail.co
m 2
Тип Опис
BOOL
цей тип даних аналогічний bool. Він також має два
значення - 0 або 1. Тільки при використанні WINAPI
прийнято використовувати замість 0 специфікатор
NULL.
BYTE байт, ну або восьмібітне беззнакове ціле число. Аналог
- unsigned char.
DWORD 32-бітове беззнакове ціле. Аналоги: unsigned long int,
UINT.
INT 32-бітове ціле. Аналог - long int
LONG 32-бітове ціле - аналог все також long int.
NULL нульовий покажчик.
UINT 32-бітове беззнакове ціле. Аналоги: unsigned long int,
DWORD.
Типи даних в WinAPI
 Дескрипторні типи даних. Дескриптор - це ідентифікатор будь-
якого об'єкта.
Andrey Gladky
KspDevelop@gmail.co
m 3
Тип Опис
HANDLE дескриптор об'єкта.
HBITMAP дескриптор растрового зображення.
HBRUSH дескриптор кисті.
HCURSOR дескриптор курсора.
HDC дескриптор контексту пристрою. Від
фрази handle device context.
HFONT дескриптор шрифту.
HICONS дескриптор криптограми.
HINSTANCE дескриптор екземпляра додатка.
HMENU дескриптор меню.
HPEN дескриптор пера.
HWND дескриптор вікна. Від фрази handle
window.
Типи даних в WinAPI
 Строкові типи даних
 Є два види кодувань символів: ANSI і UNICODE. Однобайтні
символи відносяться до ANSI, двухбайтові - до кодування
UNICODE.
 Допоміжні типи
Andrey Gladky
KspDevelop@gmail.co
m 4
Тип Опис
wchar_t Двобайтовий чар - Unicode
char Однобайтовий чар - ANSI
Тип Опис
LPARAM тип для опису lParam (long parameter).
Використовуються разом з wparam в деяких функціях.
LRESULT значення, що повертається віконної процедурою має
тип long.
WPARAM тип для опису wParam (word parameter).
Використовуються разом з lParam в деяких функціях.
Події
 Подія - це повідомлення, яке виникає в різних точках
виконуваного коду при виконанні певних умов.
 Події призначені для того, щоб мати можливість передбачити
реакцію програмного забезпечення.
 Для вирішення поставленого завдання створюються
обробники подій: як тільки програма потрапляє в заданий
стан, відбувається подія, надсилається повідомлення, а
обробник перехоплює це повідомлення.
 Подія - це перехід об'єкта з одного стану в інший. Взаємодія
об'єктів також здійснюється за допомогою подій: зміна стану
одного об'єкта призводить до зміни стану іншого об'єкта, а
подія виявляється засобом зв'язку між об'єктами.
Andrey Gladky
KspDevelop@gmail.co
m 5
Події
Подія Опис
WM_KEYDOWN Ця подія генерується кожен раз, коли натискається
клавіша на клавіатурі.
WM_KEYUP Ця подія генерується коли натиснута клавіша буде
відпущена.
WM_LBUTTONDOWN Ця подія генерується коли користувач натискає ліву
кнопку миші, якщо покажчик миші знаходиться в межах
вікна.
WM_LBUTTONUP Ця подія генерується коли користувач відпускає ліву
кнопку миші, якщо покажчик миші знаходиться в межах
вікна.
WM_SETFOCUS Ця подія генерується коли додаток отримує фокус
клавіатури. Наприклад, подія WM_SETFOCUS
генерується, коли ви клацаєте мишею по неактивному
вікні.
WM_SIZE Ця подія повідомляє вікно, що його розміри був змінений.
Andrey Gladky
KspDevelop@gmail.co
m 6
Каркас Windows додатків
Andrey Gladky KspDevelop@gmail.com 7
Каркас Windows додатків
Andrey Gladky KspDevelop@gmail.com 8
Щоб мати можливість працювати з віконним інтерфейсом, або
каркасом, Windows-додаток повинен виконати деякі стандартні дії:
1. Визначити клас вікна.
2. Зареєструвати вікно.
3. Створити вікно даного класу.
4. Показати вікно.
5. Запустити цикл обробки повідомлень.
Клас вікна - структура, що визначає його властивості.
Повідомлення
 Зміни в стані апаратних засобів, самій операційній системі, інших
додатках, які можуть вплинути на хід виконання завдання,
називаються подіями.
 Додатки сповіщаються про події через повідомлення, які їм
посилає Windows.
 Вся система Windows побудована на передачі, приймані та
обробки повідомлень. Замість безпосереднього контролю за
станом пристроїв введення-виведення додаток повинен очікувати
надходження відповідного повідомлення від операційної системи.
 Windows створює спеціальні черги повідомлень, в які
направляються повідомлення для додатків. Додатки, в свою чергу,
повинні вибирати повідомлення з цієї черги і обробляти їх
відповідним чином.
 Крім того, вони самі можуть при необхідності посилати
повідомлення операційній системі та іншим додатків.
Andrey Gladky
KspDevelop@gmail.co
m 9
Система повідомлень в
Windows
 Апаратні повідомлення
Andrey Gladky
KspDevelop@gmail.co
m 10
Повідомлення Опис
WM_LBUTTONDBLCLK Подвійне натискання лівої кнопки миші
WM_LBUTTONDOWN Натискання лівої кнопки
WM_LBUTTONUP Відпускання лівої кнопки
WM_MBUTTONDBLCLK Подвійне натискання середньої кнопки
WM_MBUTTONDOWN Натискання середньої кнопки
WM_MBUTTONUP Відпускання середньої кнопки
WM_MOUSEMOVE Переміщення миші
WM_RBUTTONDBLCLK Подвійне натискання правої кнопки миші
WM_RBUTTONDOWN Натискання правої кнопки
WM_RBUTTONUP Відпускання правої кнопки
Система повідомлень в
Windows Повідомлення від клавіатури
Andrey Gladky
KspDevelop@gmail.co
m 11
Повідомлення Опис
WM_CHAR введення символу
WM_DEADCHAR Діакритичний знак (наголос і т. Д.)
WM_KEYDOWN Була натиснута клавіша
WM_KEYUP Була відпущена клавіша
WM_SYSCHAR Введення спеціальних символів
WM_SYSDEADCHAR Спеціальний діакритичний знак
WM_SYSKEYDOWN Була натиснута спеціальна клавіша
WM_SYSKEYUP Була відпущена спеціальна клавіша
Система повідомлень в
WindowsВіконні повідомлення:
http://www.realcoding.net/articles/prilozhenie-2-osnovnye-tipy-
soobshchenii-windows.html
Andrey Gladky
KspDevelop@gmail.co
m 12
Повідомлення Опис
WM_ACTIVATE Вікно активно
WM_ACTIVATEAPP додаток активно
WM_СREATE Вікно було створено
WM_DESTROY Вікно було знищено
WM_ENABLE Був дозволено введення у вікно
WM_KILLFOCUS Вікно втратило фокус вводу від клавіатури
WM_MOUSEACTIVATE Вікно стане активним після натискання
кнопки миші
WM_MOVE Переміщення вікна
WM_SETFOCUS Вікно було переміщено
WM_S1ZE Вікно змінило розмір
Черга повідомлень
 Насамперед повідомлення потрапляють в системну чергу
повідомлень Windows. Далі з неї повідомлення розподіляються
в черзі повідомлень додатків. Для кожного додатка
створюється своя черга повідомлень.
 Черга повідомленнь додатків може поповнюватися не тільки із
системної черги. Будь-який додаток може послати
повідомлення будь-якому іншому додатку, в тому числі і сам
собі.
 Обробка повідомлень
Andrey Gladky
KspDevelop@gmail.co
m 13
MSG msg;
while(GetMessage(&msg, 0, 0, 0))
{
DispatchMessage(&msg);
}
Вікна
 Вікно - це прямокутна ділянка екрану, в якому додаток
відображає інформацію і отримує реакцію від користувача.
Andrey Gladky
KspDevelop@gmail.co
m 14
Вікна. Дескриптор вікна
 Одним з найважливіших понять в Windows-програмуванні є
поняття об'єктного дескриптора (handle). У Windows всі
об'єкти - кисті, растри, покажчики миші, контексти пристроїв,
вікна, екземпляри программ- ідентифікуються 32-розрядним (в
Winl6 - 16-розрядним) цілим числом, яке називається
дескриптором.
 Дескриптор вікна.
 Після створення вікна, функція, що його створює повертає
дескриптор вікна (window handle), який унікально ідентифікує
вікно. Дескриптор вікна має тип даних HWND; прикладна
програма повинна використовувати цей тип при оголошенні
змінної, яка містить в собі дескриптор вікна. Прикладна
програма використовує цей дескриптор в інших функціях, щоб
направити їх дії на це вікно.
Andrey Gladky
KspDevelop@gmail.co
m 15
Вікна. Стилі вікна
Стиль Опис
WS_BORDER Створення вікна з рамкою.
WS_CAPTION Створення вікна з заголовком
WS_CHILDWINDOW Створення дочірнього вікна
WS_CLIPCHILDREN Виключає область, зайняту дочірнім вікном, при
виведенні в батьківське вікно.
WS_CLIPSIBLINGS Використовується спільно зі стилем WS_CHILD для
відтворення в дочірньому вікні областей кліпу, що
перекриваються іншими вікнами.
WS_DISABLED Створює вікно, яке недоступно.
WS_DLGFRAME Створює вікно з подвійною рамкою, без заголовка.
WS_GROUP Дозволяє об'єднувати елементи управління в групи.
WS_HSCROLL Створює вікно з горизонтальною смугою прокрутки.
WS_MAXIMIZE Створює вікно максимального розміру.
Andrey Gladky
KspDevelop@gmail.co
m 16
Вікна. Стилі вікна
Стиль Опис
WS_MAXIMIZEBOX Створює вікно з кнопкою розгортання вікна.
WS_MINIMIZE Створює вікно мінімального розміру.
WS_ICONIC Створює спочатку згорнуте вікно
WS_MINIMIZEBOX Створює вікно з кнопкою згортання.
WS_OVERLAPPED Створює перекриваюче вікно
WS_SYSMENU Створює вікно з кнопкою системного меню
WS_TABSTOP Визначає елементи управління, перехід до яких
може бути виконаний по клавіші TAB.
WS_VISIBLE Створює спочатку невідображене вікно.
WS_VSCROLL Створює вікно з горизонтальною смугою прокрутки.
WS_THICKFRAME Створює вікно з рамкою, використовуваної для
зміни
Andrey Gladky
KspDevelop@gmail.co
m 17
Вікна. Віконний клас
Andrey Gladky
KspDevelop@gmail.co
m 18
 Віконний клас (window class), або клас вікна - це структура, що
визначає основні характеристики вікна. До них відносяться
стиль вікна і пов'язані з вікном ресурси, такі як піктограма,
курсор, меню і кисть для зафарбовування фону. Крім того, одне
з полів структури містить адресу віконної процедури,
призначеної для обробки повідомлень, одержуваних будь-яким
вікном даного класу.
 Посилання на віконний клас передається функції
CreateWindow, призначеної для створення вікна.
 Використання класу вікна дозволяє створювати безліч вікон на
основі одного і того ж віконного класу і, отже, використовувати
одну й ту ж віконну процедуру. Наприклад, всі кнопки в
програмах Windows створені на основі віконного класу
BUTTON.
Вікна. Віконна процедура
Andrey Gladky
KspDevelop@gmail.co
m 19
 Віконна процедура класу, розташована в динамічно
завантажувальній бібліотеці, управляє обробкою повідомлень
для всіх кнопок всіх вікон.
 Аналогічні системні класи є і для інших елементів управління,
таких як, наприклад, списки і поля редагування. У сукупності
ці класи називаються стандартними віконними класами.
 Windows містить стандартний віконний клас також і для
діалогових вікон, що грають важливу роль в графічному
інтерфейсі користувача.

More Related Content

Similar to Win api module_1.2

урок 10. робочий стіл. меню, їх призначення. види меню. поняття про програму....
урок 10. робочий стіл. меню, їх призначення. види меню. поняття про програму....урок 10. робочий стіл. меню, їх призначення. види меню. поняття про програму....
урок 10. робочий стіл. меню, їх призначення. види меню. поняття про програму....School5uman
 
урок 11 вікно програми, основні об’єкти вікна. завершення роботи з програмою....
урок 11 вікно програми, основні об’єкти вікна. завершення роботи з програмою....урок 11 вікно програми, основні об’єкти вікна. завершення роботи з програмою....
урок 11 вікно програми, основні об’єкти вікна. завершення роботи з програмою....School5uman
 
операційна система Windows
операційна система Windowsопераційна система Windows
операційна система Windowsanja_79
 
Laboratorna robota2
Laboratorna robota2Laboratorna robota2
Laboratorna robota2mukolaivna
 
урок 11. вікно програми, основні об'єкти вікна
урок 11. вікно програми, основні об'єкти вікнаурок 11. вікно програми, основні об'єкти вікна
урок 11. вікно програми, основні об'єкти вікнаSchool5uman
 

Similar to Win api module_1.2 (7)

урок 7
урок 7урок 7
урок 7
 
урок 10. робочий стіл. меню, їх призначення. види меню. поняття про програму....
урок 10. робочий стіл. меню, їх призначення. види меню. поняття про програму....урок 10. робочий стіл. меню, їх призначення. види меню. поняття про програму....
урок 10. робочий стіл. меню, їх призначення. види меню. поняття про програму....
 
урок 11 вікно програми, основні об’єкти вікна. завершення роботи з програмою....
урок 11 вікно програми, основні об’єкти вікна. завершення роботи з програмою....урок 11 вікно програми, основні об’єкти вікна. завершення роботи з програмою....
урок 11 вікно програми, основні об’єкти вікна. завершення роботи з програмою....
 
операційна система Windows
операційна система Windowsопераційна система Windows
операційна система Windows
 
Laboratorna robota2
Laboratorna robota2Laboratorna robota2
Laboratorna robota2
 
урок 7
урок 7урок 7
урок 7
 
урок 11. вікно програми, основні об'єкти вікна
урок 11. вікно програми, основні об'єкти вікнаурок 11. вікно програми, основні об'єкти вікна
урок 11. вікно програми, основні об'єкти вікна
 

More from Andrii Hladkyi

Net framework and C# module 17. Serialization
Net framework and  C# module 17. SerializationNet framework and  C# module 17. Serialization
Net framework and C# module 17. SerializationAndrii Hladkyi
 
Net Framework and C# Module 3 4. Inheritance, Abstractions
Net Framework and C# Module 3 4. Inheritance, AbstractionsNet Framework and C# Module 3 4. Inheritance, Abstractions
Net Framework and C# Module 3 4. Inheritance, AbstractionsAndrii Hladkyi
 
NET Framework and C# Module 12.2. Garbage Collector
NET Framework and C# Module 12.2. Garbage CollectorNET Framework and C# Module 12.2. Garbage Collector
NET Framework and C# Module 12.2. Garbage CollectorAndrii Hladkyi
 
System programing module 2. Threads
System programing module 2. ThreadsSystem programing module 2. Threads
System programing module 2. ThreadsAndrii Hladkyi
 
System programing module 1. Processes
System programing module 1. ProcessesSystem programing module 1. Processes
System programing module 1. ProcessesAndrii Hladkyi
 
NET Framework and C# Module 6.2. Generics
NET Framework and C# Module 6.2. GenericsNET Framework and C# Module 6.2. Generics
NET Framework and C# Module 6.2. GenericsAndrii Hladkyi
 
NET Framework and C# Module 6. Delegates, Events
NET Framework and C# Module 6. Delegates, EventsNET Framework and C# Module 6. Delegates, Events
NET Framework and C# Module 6. Delegates, EventsAndrii Hladkyi
 
NET Framework and C# Module 5. Interfaces
NET Framework and C# Module 5. InterfacesNET Framework and C# Module 5. Interfaces
NET Framework and C# Module 5. InterfacesAndrii Hladkyi
 
Net Framework and c# module 2. OOP
Net Framework and c# module 2. OOPNet Framework and c# module 2. OOP
Net Framework and c# module 2. OOPAndrii Hladkyi
 
Net Framework and c# Lesson 1
Net Framework and c# Lesson 1Net Framework and c# Lesson 1
Net Framework and c# Lesson 1Andrii Hladkyi
 
Design pattern module 1
Design pattern module 1Design pattern module 1
Design pattern module 1Andrii Hladkyi
 
Win api module_2.0_gdi+
Win api module_2.0_gdi+Win api module_2.0_gdi+
Win api module_2.0_gdi+Andrii Hladkyi
 

More from Andrii Hladkyi (20)

Net framework and C# module 17. Serialization
Net framework and  C# module 17. SerializationNet framework and  C# module 17. Serialization
Net framework and C# module 17. Serialization
 
Net Framework and C# Module 3 4. Inheritance, Abstractions
Net Framework and C# Module 3 4. Inheritance, AbstractionsNet Framework and C# Module 3 4. Inheritance, Abstractions
Net Framework and C# Module 3 4. Inheritance, Abstractions
 
NET Framework and C# Module 12.2. Garbage Collector
NET Framework and C# Module 12.2. Garbage CollectorNET Framework and C# Module 12.2. Garbage Collector
NET Framework and C# Module 12.2. Garbage Collector
 
System programing module 2. Threads
System programing module 2. ThreadsSystem programing module 2. Threads
System programing module 2. Threads
 
System programing module 1. Processes
System programing module 1. ProcessesSystem programing module 1. Processes
System programing module 1. Processes
 
NET Framework and C# Module 6.2. Generics
NET Framework and C# Module 6.2. GenericsNET Framework and C# Module 6.2. Generics
NET Framework and C# Module 6.2. Generics
 
NET Framework and C# Module 6. Delegates, Events
NET Framework and C# Module 6. Delegates, EventsNET Framework and C# Module 6. Delegates, Events
NET Framework and C# Module 6. Delegates, Events
 
NET Framework and C# Module 5. Interfaces
NET Framework and C# Module 5. InterfacesNET Framework and C# Module 5. Interfaces
NET Framework and C# Module 5. Interfaces
 
Net Framework and c# module 2. OOP
Net Framework and c# module 2. OOPNet Framework and c# module 2. OOP
Net Framework and c# module 2. OOP
 
Net Framework and c# Lesson 1
Net Framework and c# Lesson 1Net Framework and c# Lesson 1
Net Framework and c# Lesson 1
 
Wpf module 2
Wpf module 2Wpf module 2
Wpf module 2
 
Wpf module 1
Wpf module 1Wpf module 1
Wpf module 1
 
Msp module 3
Msp module 3Msp module 3
Msp module 3
 
Msp module 2
Msp module 2Msp module 2
Msp module 2
 
Msp module 1
Msp module 1Msp module 1
Msp module 1
 
Ado.net module 2
Ado.net module 2Ado.net module 2
Ado.net module 2
 
Ado.net module 1
Ado.net module 1Ado.net module 1
Ado.net module 1
 
Design pattern module 1
Design pattern module 1Design pattern module 1
Design pattern module 1
 
Win api module_2.0_gdi+
Win api module_2.0_gdi+Win api module_2.0_gdi+
Win api module_2.0_gdi+
 
Win api module_1.1_ok
Win api module_1.1_okWin api module_1.1_ok
Win api module_1.1_ok
 

Win api module_1.2

  • 2. Типи даних в WinAPI  Основні типи даних Andrey Gladky KspDevelop@gmail.co m 2 Тип Опис BOOL цей тип даних аналогічний bool. Він також має два значення - 0 або 1. Тільки при використанні WINAPI прийнято використовувати замість 0 специфікатор NULL. BYTE байт, ну або восьмібітне беззнакове ціле число. Аналог - unsigned char. DWORD 32-бітове беззнакове ціле. Аналоги: unsigned long int, UINT. INT 32-бітове ціле. Аналог - long int LONG 32-бітове ціле - аналог все також long int. NULL нульовий покажчик. UINT 32-бітове беззнакове ціле. Аналоги: unsigned long int, DWORD.
  • 3. Типи даних в WinAPI  Дескрипторні типи даних. Дескриптор - це ідентифікатор будь- якого об'єкта. Andrey Gladky KspDevelop@gmail.co m 3 Тип Опис HANDLE дескриптор об'єкта. HBITMAP дескриптор растрового зображення. HBRUSH дескриптор кисті. HCURSOR дескриптор курсора. HDC дескриптор контексту пристрою. Від фрази handle device context. HFONT дескриптор шрифту. HICONS дескриптор криптограми. HINSTANCE дескриптор екземпляра додатка. HMENU дескриптор меню. HPEN дескриптор пера. HWND дескриптор вікна. Від фрази handle window.
  • 4. Типи даних в WinAPI  Строкові типи даних  Є два види кодувань символів: ANSI і UNICODE. Однобайтні символи відносяться до ANSI, двухбайтові - до кодування UNICODE.  Допоміжні типи Andrey Gladky KspDevelop@gmail.co m 4 Тип Опис wchar_t Двобайтовий чар - Unicode char Однобайтовий чар - ANSI Тип Опис LPARAM тип для опису lParam (long parameter). Використовуються разом з wparam в деяких функціях. LRESULT значення, що повертається віконної процедурою має тип long. WPARAM тип для опису wParam (word parameter). Використовуються разом з lParam в деяких функціях.
  • 5. Події  Подія - це повідомлення, яке виникає в різних точках виконуваного коду при виконанні певних умов.  Події призначені для того, щоб мати можливість передбачити реакцію програмного забезпечення.  Для вирішення поставленого завдання створюються обробники подій: як тільки програма потрапляє в заданий стан, відбувається подія, надсилається повідомлення, а обробник перехоплює це повідомлення.  Подія - це перехід об'єкта з одного стану в інший. Взаємодія об'єктів також здійснюється за допомогою подій: зміна стану одного об'єкта призводить до зміни стану іншого об'єкта, а подія виявляється засобом зв'язку між об'єктами. Andrey Gladky KspDevelop@gmail.co m 5
  • 6. Події Подія Опис WM_KEYDOWN Ця подія генерується кожен раз, коли натискається клавіша на клавіатурі. WM_KEYUP Ця подія генерується коли натиснута клавіша буде відпущена. WM_LBUTTONDOWN Ця подія генерується коли користувач натискає ліву кнопку миші, якщо покажчик миші знаходиться в межах вікна. WM_LBUTTONUP Ця подія генерується коли користувач відпускає ліву кнопку миші, якщо покажчик миші знаходиться в межах вікна. WM_SETFOCUS Ця подія генерується коли додаток отримує фокус клавіатури. Наприклад, подія WM_SETFOCUS генерується, коли ви клацаєте мишею по неактивному вікні. WM_SIZE Ця подія повідомляє вікно, що його розміри був змінений. Andrey Gladky KspDevelop@gmail.co m 6
  • 7. Каркас Windows додатків Andrey Gladky KspDevelop@gmail.com 7
  • 8. Каркас Windows додатків Andrey Gladky KspDevelop@gmail.com 8 Щоб мати можливість працювати з віконним інтерфейсом, або каркасом, Windows-додаток повинен виконати деякі стандартні дії: 1. Визначити клас вікна. 2. Зареєструвати вікно. 3. Створити вікно даного класу. 4. Показати вікно. 5. Запустити цикл обробки повідомлень. Клас вікна - структура, що визначає його властивості.
  • 9. Повідомлення  Зміни в стані апаратних засобів, самій операційній системі, інших додатках, які можуть вплинути на хід виконання завдання, називаються подіями.  Додатки сповіщаються про події через повідомлення, які їм посилає Windows.  Вся система Windows побудована на передачі, приймані та обробки повідомлень. Замість безпосереднього контролю за станом пристроїв введення-виведення додаток повинен очікувати надходження відповідного повідомлення від операційної системи.  Windows створює спеціальні черги повідомлень, в які направляються повідомлення для додатків. Додатки, в свою чергу, повинні вибирати повідомлення з цієї черги і обробляти їх відповідним чином.  Крім того, вони самі можуть при необхідності посилати повідомлення операційній системі та іншим додатків. Andrey Gladky KspDevelop@gmail.co m 9
  • 10. Система повідомлень в Windows  Апаратні повідомлення Andrey Gladky KspDevelop@gmail.co m 10 Повідомлення Опис WM_LBUTTONDBLCLK Подвійне натискання лівої кнопки миші WM_LBUTTONDOWN Натискання лівої кнопки WM_LBUTTONUP Відпускання лівої кнопки WM_MBUTTONDBLCLK Подвійне натискання середньої кнопки WM_MBUTTONDOWN Натискання середньої кнопки WM_MBUTTONUP Відпускання середньої кнопки WM_MOUSEMOVE Переміщення миші WM_RBUTTONDBLCLK Подвійне натискання правої кнопки миші WM_RBUTTONDOWN Натискання правої кнопки WM_RBUTTONUP Відпускання правої кнопки
  • 11. Система повідомлень в Windows Повідомлення від клавіатури Andrey Gladky KspDevelop@gmail.co m 11 Повідомлення Опис WM_CHAR введення символу WM_DEADCHAR Діакритичний знак (наголос і т. Д.) WM_KEYDOWN Була натиснута клавіша WM_KEYUP Була відпущена клавіша WM_SYSCHAR Введення спеціальних символів WM_SYSDEADCHAR Спеціальний діакритичний знак WM_SYSKEYDOWN Була натиснута спеціальна клавіша WM_SYSKEYUP Була відпущена спеціальна клавіша
  • 12. Система повідомлень в WindowsВіконні повідомлення: http://www.realcoding.net/articles/prilozhenie-2-osnovnye-tipy- soobshchenii-windows.html Andrey Gladky KspDevelop@gmail.co m 12 Повідомлення Опис WM_ACTIVATE Вікно активно WM_ACTIVATEAPP додаток активно WM_СREATE Вікно було створено WM_DESTROY Вікно було знищено WM_ENABLE Був дозволено введення у вікно WM_KILLFOCUS Вікно втратило фокус вводу від клавіатури WM_MOUSEACTIVATE Вікно стане активним після натискання кнопки миші WM_MOVE Переміщення вікна WM_SETFOCUS Вікно було переміщено WM_S1ZE Вікно змінило розмір
  • 13. Черга повідомлень  Насамперед повідомлення потрапляють в системну чергу повідомлень Windows. Далі з неї повідомлення розподіляються в черзі повідомлень додатків. Для кожного додатка створюється своя черга повідомлень.  Черга повідомленнь додатків може поповнюватися не тільки із системної черги. Будь-який додаток може послати повідомлення будь-якому іншому додатку, в тому числі і сам собі.  Обробка повідомлень Andrey Gladky KspDevelop@gmail.co m 13 MSG msg; while(GetMessage(&msg, 0, 0, 0)) { DispatchMessage(&msg); }
  • 14. Вікна  Вікно - це прямокутна ділянка екрану, в якому додаток відображає інформацію і отримує реакцію від користувача. Andrey Gladky KspDevelop@gmail.co m 14
  • 15. Вікна. Дескриптор вікна  Одним з найважливіших понять в Windows-програмуванні є поняття об'єктного дескриптора (handle). У Windows всі об'єкти - кисті, растри, покажчики миші, контексти пристроїв, вікна, екземпляри программ- ідентифікуються 32-розрядним (в Winl6 - 16-розрядним) цілим числом, яке називається дескриптором.  Дескриптор вікна.  Після створення вікна, функція, що його створює повертає дескриптор вікна (window handle), який унікально ідентифікує вікно. Дескриптор вікна має тип даних HWND; прикладна програма повинна використовувати цей тип при оголошенні змінної, яка містить в собі дескриптор вікна. Прикладна програма використовує цей дескриптор в інших функціях, щоб направити їх дії на це вікно. Andrey Gladky KspDevelop@gmail.co m 15
  • 16. Вікна. Стилі вікна Стиль Опис WS_BORDER Створення вікна з рамкою. WS_CAPTION Створення вікна з заголовком WS_CHILDWINDOW Створення дочірнього вікна WS_CLIPCHILDREN Виключає область, зайняту дочірнім вікном, при виведенні в батьківське вікно. WS_CLIPSIBLINGS Використовується спільно зі стилем WS_CHILD для відтворення в дочірньому вікні областей кліпу, що перекриваються іншими вікнами. WS_DISABLED Створює вікно, яке недоступно. WS_DLGFRAME Створює вікно з подвійною рамкою, без заголовка. WS_GROUP Дозволяє об'єднувати елементи управління в групи. WS_HSCROLL Створює вікно з горизонтальною смугою прокрутки. WS_MAXIMIZE Створює вікно максимального розміру. Andrey Gladky KspDevelop@gmail.co m 16
  • 17. Вікна. Стилі вікна Стиль Опис WS_MAXIMIZEBOX Створює вікно з кнопкою розгортання вікна. WS_MINIMIZE Створює вікно мінімального розміру. WS_ICONIC Створює спочатку згорнуте вікно WS_MINIMIZEBOX Створює вікно з кнопкою згортання. WS_OVERLAPPED Створює перекриваюче вікно WS_SYSMENU Створює вікно з кнопкою системного меню WS_TABSTOP Визначає елементи управління, перехід до яких може бути виконаний по клавіші TAB. WS_VISIBLE Створює спочатку невідображене вікно. WS_VSCROLL Створює вікно з горизонтальною смугою прокрутки. WS_THICKFRAME Створює вікно з рамкою, використовуваної для зміни Andrey Gladky KspDevelop@gmail.co m 17
  • 18. Вікна. Віконний клас Andrey Gladky KspDevelop@gmail.co m 18  Віконний клас (window class), або клас вікна - це структура, що визначає основні характеристики вікна. До них відносяться стиль вікна і пов'язані з вікном ресурси, такі як піктограма, курсор, меню і кисть для зафарбовування фону. Крім того, одне з полів структури містить адресу віконної процедури, призначеної для обробки повідомлень, одержуваних будь-яким вікном даного класу.  Посилання на віконний клас передається функції CreateWindow, призначеної для створення вікна.  Використання класу вікна дозволяє створювати безліч вікон на основі одного і того ж віконного класу і, отже, використовувати одну й ту ж віконну процедуру. Наприклад, всі кнопки в програмах Windows створені на основі віконного класу BUTTON.
  • 19. Вікна. Віконна процедура Andrey Gladky KspDevelop@gmail.co m 19  Віконна процедура класу, розташована в динамічно завантажувальній бібліотеці, управляє обробкою повідомлень для всіх кнопок всіх вікон.  Аналогічні системні класи є і для інших елементів управління, таких як, наприклад, списки і поля редагування. У сукупності ці класи називаються стандартними віконними класами.  Windows містить стандартний віконний клас також і для діалогових вікон, що грають важливу роль в графічному інтерфейсі користувача.