Ang mga prinsipyo ng paggana ng interface ng gumagamit ng mga operating system ng pamilya Windows ay batay sa konsepto ng isang window. Ang desktop, taskbar, listahan, dayalogo, pindutan, menu ay pawang mga bintana. Samakatuwid, sa katunayan, upang maipakita ang anumang elemento ng interface, kailangan mong lumikha ng isang window ng windows.
Kailangan
- - tagatala;
- - Windows Platform SDK.
Panuto
Hakbang 1
Irehistro ang klase ng window na gagawin, kung kinakailangan. Tumawag sa mga pagpapaandar ng API na RegisterClass, RegisterClassEx o gamitin ang naaangkop na pagpapaandar ng ginamit na balangkas.
Ang pag-andar ng RegisterClass at RegisterClassEx ay tumatanggap ng mga pahiwatig sa mga istraktura ng uri na WNDCLASS at WNDCLASSEX, ayon sa pagkakabanggit, bilang kanilang tanging parameter. Ang halaga ng pagbabalik ng uri ng ATOM ay maaaring gamitin bilang kapalit ng pangalan ng klase kapag lumilikha ng isang window. Kung nabigo ang tawag sa pagpapaandar, ang halaga ng pagbalik ay 0.
I-install ang istraktura ng uri ng WNDCLASS o WNDCLASSEX. Punan ang lahat ng kinakailangang mga patlang. Sa partikular, ang tamang mga halaga ay dapat ilagay sa:
- CBSize - laki ng istraktura sa bytes;
- estilo - isang hanay ng mga estilo para sa klase ng window;
- lpfnWndProc - pointer sa isang window procedure;
- Ang hInstance ay ang hawakan ng module kung saan nakarehistro ang klase sa window;
- lpszClassName ay ang simbolikong pangalan ng klase.
Ang natitirang mga patlang ay maaaring nakasulat na may mga halaga ng Null. Gumawa ng isang function call upang irehistro ang window class. Suriin ang ibinalik na resulta.
Hakbang 2
Pumili ng isang mayroon nang klase ng window kung kinakailangan. Dapat mong malaman ang simbolikong pangalan ng klase (ang dumaan sa lpszClassName pointer kapag nirehistro ito) o ang katumbas na halaga ng ATOM. Ang klase ay maaaring maging lokal sa antas ng aplikasyon, pandaigdigan sa antas ng aplikasyon (nakarehistro sa bandila ng CS_GLOBALCLASS), o klase ng system. Ang huling uri ay nagsasama ng mga klase ng windows na may mga pangalan: Button, ComboBox, Edit, ListBox, MDIClient, ScrollBar, Static. Ang mga klase tulad ng RichEdit20W o SysListView32 ay nakarehistro kapag na-load ang mga kaukulang aklatan.
Hakbang 3
Lumikha ng isang window ng Windows. Gamitin ang mga pagpapaandar ng API na CreateWindow, CreateWindowEx, o ang naaangkop na mga pamamaraan ng pambalot para sa mga bagay sa klase ng balangkas o silid-aklatan na iyong ginagamit. Ang prototype para sa pag-andar ng CreateWindowEx ay ganito:
HWND CreateWindowEx (DWORD dwExStyle, LPCTSTR lpClassName, LPCTSTR lpWindowName, DWORD dwStyle, int x, int y, int nWidth, int n Taas, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam);
Ang pag-andar ng CreateWindow ay naiiba mula sa CreateWindowEx lamang sa kawalan ng parameter ng dwExStyle.
Tumawag sa CreateWindow o CreateWindowEx. Ipasa sa parameter ng lpClassName ang pangalan o halaga ng ATOM ng klase ng window na iyong tinukoy sa una o pangalawang hakbang. Ang mga parameter na x, y, nWidth, n Taas ay maaaring maging mga coordinate at laki ng window na nilikha. Ang hawakan ng window ng magulang (kung mayroon man) ay naipasa sa pamamagitan ng hWndParent.
I-save at i-parse ang halagang ibinalik ng CreateWindow o CreateWindowEx. Sa tagumpay, ibabalik nila ang isang hawakan sa bagong window; sa kabiguan, Null.