WinAPI сі c приклади АйТі бубон
Інструменти користувача
Інструменти сайту
Зміст
WinAPI MSDN
Алгоритм створення вікна програми на WinAPI :
Елементи керування створюються лише за допомогою функції CreateWindow. Вони мають для кожного класу повідомлення, нотифікаційні повідомлення WM_NOTIFY.
Повідомлення Windows
Система надсилає повідомлення віконній процедурі з набором чотирьох параметрів: дескриптор вікна, код повідомлення, і два значення, які називаються параметрами повідомлення (message parameters). Дескриптор вікна (window handle) ідентифікує вікно, якому призначено повідомлення. Система використовує його, щоб встановити, яка віконна процедура повинна прийняти повідомлення. Код (ідентифікатор) повідомлення (message identifier) – іменована константа, яка ідентифікує мету повідомлення. Коли віконна процедура приймає повідомлення, вона використовує код повідомлення, щоб встановити, як його обробити. Наприклад, код повідомлення WM_PAINT повідомляє віконну процедуру, що робоча область вікна змінилася і повинна бути перемальована. Параметри повідомлення визначають дані або розташування даних, використаних віконною процедурою для обробки повідомлення. Призначення та значення параметрів повідомлення залежить від змісту повідомлення. Параметр повідомлення може містити ціле число, упаковані бітові прапорці, покажчик структуру, що містить додаткові дані і так далі. Коли повідомлення не використовує параметри повідомлення, вони зазвичай встановлюються значення ПУСТО (NULL). Віконна процедура повинна перевірити код повідомлення, щоб встановити, як інтерпретувати параметри повідомлення.
Маршрутизація повідомлень (синхронні, асинхронні)
Система використовує два методи відправлення повідомлення за маршрутом віконної процедури:
Повідомлення, розміщені в чергу повідомлень, називаються поставлені в чергу (синхронні ) повідомлення (queued messages). Вони з'являються, перш за все, як результат введення даних через мишу або клавіатуру, такі повідомлення як WM_MOUSEMOVE, WM_LBUTTONDOWN, WM_KEYDOWN і WM_CHAR. Інші поставлені в чергу повідомлення включають таймер, малювання та вихід із програми: WM_TIMER, WM_PAINT та WM_QUIT. Більшість інших повідомлень, що надсилаються безпосередньо віконній процедурі, називаються не поставлені в чергу (асинхронні ) повідомлення (nonqueued messages).