Як створити вікно Windows.

В основі принципів функціонування користувальницького інтерфейсу операційних систем сімейства Windows лежить концепція вікна. Робочий стіл, панель задач, списки, діалоги, кнопки, меню - все це вікна. Тому, фактично, для того щоб відобразити будь-який елемент інтерфейсу, треба створити вікно windows.
Вам знадобиться
  • - компілятор;
  • - Windows Platform SDK.
Інструкція
1
Зареєструйте клас вікна, яке має бути створено, якщо це необхідно. Проведіть виклик API-функцій RegisterClass, RegisterClassEx або використовуйте відповідний функціонал застосовуваного фреймворка.Функціі RegisterClass і RegisterClassEx приймають в якості єдиного параметра покажчики на структури типу WNDCLASS і WNDCLASSEX відповідно. Значення, що повертається типу ATOM може використовуватися замість імені класу при створенні вікна. Якщо виклик функції завершиться невдачею, буде повернуто значення 0.Создайте екземпляр структури типу WNDCLASS або WNDCLASSEX. Заповніть всі необхідні поля. Зокрема, коректні значення повинні бути поміщені в: - cbSize - розмір структури в байтах; - style - набір стилів класу вікна; - lpfnWndProc - покажчик на віконну процедуру; - hInstance дескриптор модуля, в якому проводиться реєстрація класу вікна; - lpszClassName - символічне ім'я класса.В інші поля можуть бути записані значення NULL. Проведіть виклик функції для реєстрації класу вікна. Перевірте повернутий результат.
2
Оберіть існуючий клас вікна, якщо це необхідно. Вам має бути відомо символічне ім'я класу (те, яке передається через покажчик lpszClassName при його реєстрації) або відповідне значення типу ATOM. Клас може бути локальним на рівні додатку, глобальним на рівні додатку (реєстрація виконана з прапором CS_GLOBALCLASS) або системним. До останнього типу відносяться класи вікон з іменами: Button, ComboBox, Edit, ListBox, MDIClient, ScrollBar, Static. Такі класи, як RichEdit20W або SysListView32, реєструються при завантаженні відповідних бібліотек.
3
Створіть вікно Windows. Скористайтеся API-функціями CreateWindow, CreateWindowEx або відповідними методами-обгортками об'єктів класів використовуваного фреймворку або бібліотеки. Прототип функції CreateWindowEx виглядає наступним чином: HWND CreateWindowEx (DWORD dwExStyle, LPCTSTR lpClassName, LPCTSTR lpWindowName, DWORD dwStyle, int x, int y, int nWidth, int nHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam); Функція CreateWindow відрізняється від CreateWindowEx лише відсутністю параметра dwExStyle.Осуществіте виклик CreateWindow або CreateWindowEx. Передайте як параметр lpClassName ім'я або значення типу ATOM класу вікна, визначене на першому або другому кроці. Параметрами x, y, nWidth, nHeight можуть бути координати і розміри створюваного вікна. Дескриптор вікна-батька (якщо така є) передається через hWndParent.Сохраніте і проаналізуйте значення, повернене функціями CreateWindow або CreateWindowEx. При успіху вони повернуть дескриптор нового вікна, при невдачі - NULL.