Windows oilasining operatsion tizimlari foydalanuvchi interfeysining ishlash tamoyillari oyna tushunchasiga asoslangan. Ish stoli, vazifalar paneli, ro'yxatlar, dialog oynalari, tugmalar, menyularning barchasi derazalardir. Shuning uchun, aslida, har qanday interfeys elementini namoyish qilish uchun siz deraza oynasini yaratishingiz kerak.
Kerakli
- - kompilyator;
- - Windows Platform SDK.
Ko'rsatmalar
1-qadam
Agar kerak bo'lsa, yaratiladigan oynaning sinfini ro'yxatdan o'tkazing. RegistClass, RegisterClassEx API funktsiyalariga qo'ng'iroq qiling yoki ishlatilgan ramkaning tegishli funksiyalaridan foydalaning.
RegisterClass va RegisterClassEx funktsiyalari o'zlarining yagona parametri sifatida navbati bilan WNDCLASS va WNDCLASSEX tipdagi tuzilmalarga ko'rsatgichlarni qabul qiladi. ATOM tipidagi qaytish qiymati oynani yaratishda sinf nomi o'rniga ishlatilishi mumkin. Agar funktsiya chaqiruvi bajarilmasa, qaytish qiymati 0 ga teng.
WNDCLASS yoki WNDCLASSEX tipidagi tuzilmani o'rnating. Barcha kerakli maydonlarni to'ldiring. Xususan, to'g'ri qiymatlarni quyidagilarga joylashtirish kerak:
- cbSize - baytdagi strukturaning kattaligi;
- uslub - oyna sinfi uchun uslublar to'plami;
- lpfnWndProc - oyna protsedurasiga ko'rsatgich;
- hInstance - bu oyna sinfi ro'yxatdan o'tgan modulning tutqichi;
- lpszClassName - bu sinfning ramziy nomi.
Qolgan maydonlarni NULL qiymatlari bilan yozish mumkin. Oyna sinfini ro'yxatdan o'tkazish uchun funktsiyaga qo'ng'iroq qiling. Qaytarilgan natijani tekshiring.
2-qadam
Agar kerak bo'lsa, mavjud oyna sinfini tanlang. Siz ramziy sinf nomini (uni ro'yxatdan o'tkazishda lpszClassName ko'rsatgichidan o'tgan) yoki tegishli ATOM qiymatini bilishingiz kerak. Sinf dastur darajasida mahalliy, dastur darajasida global (CS_GLOBALCLASS bayrog'ida ro'yxatdan o'tgan) yoki tizim sinfida bo'lishi mumkin. Oxirgi turga nomlari bo'lgan Windows sinflari kiradi: Button, ComboBox, Edit, ListBox, MDIClient, ScrollBar, Static. Tegishli kutubxonalar yuklanganda RichEdit20W yoki SysListView32 kabi sinflar ro'yxatdan o'tkaziladi.
3-qadam
Windows oynasini yarating. Siz foydalanadigan ramka yoki kutubxonaning sinf ob'ektlari uchun API funktsiyalaridan CreateWindow, CreateWindowEx yoki tegishli o'rash usullaridan foydalaning. CreateWindowEx funktsiyasining prototipi quyidagicha:
HWND CreateWindowEx (DWORD dwExStyle, LPCTSTR lpClassName, LPCTSTR lpWindowName, DWORD dwStyle, int x, int y, int nWidth, balandlik, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam);
CreateWindow funktsiyasi CreateWindowEx-dan faqat dwExStyle parametri yo'qligida farq qiladi.
CreateWindow yoki CreateWindowEx-ga qo'ng'iroq qiling. LpClassName parametriga birinchi yoki ikkinchi bosqichda aniqlagan oyna sinfining nomi yoki ATOM qiymatini kiriting. X, y, nWidth, nHeight parametrlari yaratilayotgan oynaning koordinatalari va o'lchamlari bo'lishi mumkin. Ota-ona oynasining tutqichi (agar mavjud bo'lsa) hWndParent orqali uzatiladi.
CreateWindow yoki CreateWindowEx tomonidan qaytarilgan qiymatni saqlang va ajrating. Muvaffaqiyat bilan ular yangi oynaga dastani qaytaradilar; muvaffaqiyatsizlikda NULL.