Проектування вікно процедури

Наступний приклад показує Структура типового вікна процедури. Процедура вікно використовує аргумент повідомлення в заяві Перейти з окремі повідомлення обробляється окремий випадок заяви. Зверніть увагу, що кожний випадок повертає певного значення для кожного повідомлення. Для повідомлень, що це не обробки вікно процедура закликає DefWindowProc функції.

(Зворотний виклик MainWndProc LRESULT
    HWND hwnd, / / ручка вікна
    UINT uMsg, / / ідентифікатор повідомлення
    WPARAM wParam, / / перші повідомлення параметра
    LPARAM-lParam) / / другий параметр повідомлення
{перемикач (uMsg) {випадку WM_CREATE: / / Ініціалізація вікна. 
            повертає 0; 
 
        справа WM_PAINT: / / малювати клієнтської області вікна. 
            повертає 0; 
 
        справа WM_SIZE: / / встановити розмір і розташування вікна. 
            повертає 0; 
 
        справа WM_DESTROY: / / очищення об'єкти вікон даних. 
            повертає 0; 
 
        / / / / Процес інших повідомлень. 
        / / за замовчуванням: повернення DefWindowProc (hwnd, uMsg, wParam, lParam); 
    } повертає 0; 
} 

 

WM_NCCREATE messageis, який послав просто після вашого вікна, але якщо застосунок реагує на це повідомлення на повернення FALSE, CreateWindowEx функція виходу з ладу. WM_CREATE повідомлення надсилається після того, як ваше вікно вже створено.

WM_DESTROY повідомлення надсилається, коли ваші вікна збирається бути знищені. Функція DestroyWindow бере на себе знищити будь-якої дитини windows вікна знищуються. WM_NCDESTROY повідомлення надсилається тільки, перш ніж знищили вікно.

По крайней мере, повинні обробляти вікно процедуру на WM_PAINT повідомлення звернути собі. Як правило, він має обробляти мишу і клавіатуру повідомлень. Зверніться до описи окремих повідомлень, щоб визначити, чи ваші вікна процедура повинна впоратися з ними.

Заявку можна викликати функцію DefWindowProc , як частину обробки повідомлення. У такому випадку застосування можна змінити параметри повідомлення перед передачі повідомлення з DefWindowProc, або його можна продовжити роботу з за замовчуванням обробки після виконання своїх операцій.

В діалоговому вікні процедури отримує WM_INITDIALOG повідомлення, а не WM_CREATE повідомлення а не проходить необробленої повідомлень DefDlgProc функції. В іншому випадку, в діалоговому вікні процедури таке ж як вікно процедура.

Index