Windows гэр бүлийн үйлдлийн системийн хэрэглэгчийн интерфейсийн үйл ажиллагааны зарчим нь цонхны үзэл баримтлал дээр суурилдаг. Десктоп, ажлын самбар, жагсаалт, харилцах цонх, товчлуур, цэс нь бүгд цонх юм. Тиймээс үнэн хэрэгтээ ямар ч интерфэйсийн элементийг харуулахын тулд та windows цонх үүсгэх хэрэгтэй.
Шаардлагатай
- - хөрвүүлэгч;
- - Windows платформ SDK.
Зааварчилгаа
1-р алхам
Шаардлагатай бол үүсгэх цонхны ангийг бүртгэнэ. API функцуудад RegistClass, RegisterClassEx руу дуудлага хийх эсвэл ашигласан хүрээний тохирох ажиллагааг ашиглах.
RegisterClass ба RegisterClassEx функцууд нь WNDCLASS ба WNDCLASSEX төрлийн бүтцэд заагчийг тус тусад нь цорын ганц параметр болгон хүлээн авдаг. ATOM төрлийн буцах утгыг цонх үүсгэх үед ангийн нэрний оронд ашиглаж болно. Хэрэв функцын дуудлага амжилтгүй болбол буцах утга нь 0 байна.
WNDCLASS эсвэл WNDCLASSEX төрлийн бүтцийг бий болгох. Шаардлагатай бүх талбарыг бөглөнө үү. Ялангуяа зөв утгыг дараахь хэсэгт байрлуулах ёстой.
- cbSize - бүтцийн хэмжээ байтаар;
- хэв маяг - цонхны ангид зориулсан хэв маягийн багц;
- 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 n өндөр, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam);
CreateWindow функц нь зөвхөн dwExStyle параметр байхгүй тохиолдолд CreateWindowEx-ээс ялгаатай.
CreateWindow эсвэл CreateWindowEx руу залгах. LpClassName параметрт эхний эсвэл хоёр дахь шатанд тодорхойлсон цонхны ангийн нэр эсвэл ATOM утгыг оруулна уу. X, y, nWidth, nHeight параметрүүд нь үүсгэж буй цонхны координат ба хэмжээ байж болно. Эцэг эх цонхны бариул (хэрэв байгаа бол) hWndParent-ээр дамждаг.
CreateWindow эсвэл CreateWindowEx-ийн буцааж өгсөн утгыг хадгалах, задлах. Амжилтанд тэд шинэ цонхонд бариулыг буцааж өгөх болно; бүтэлгүйтсэн тохиолдолд NULL.