Празен прозорец на Win API
Съдържание:
1. Въведение
Програмите, написани в Win API, имат висока производителност и малък размер. Различни обекти на Windows могат да бъдат достъпни чрез функциите на Win API. В тази статия ще научите как да създадете прозорец, използвайки чист Win API. Научете как работят програмите в Windows. Обърнете внимание на размера на програмата Win API и програмата VCL.
2. Функция CreateWindowEx
Създава прозорец с посочените свойства. Функцията CreateWindowEx изглежда така:
- dwExStyle - определя стила на разширения прозорец, може да бъде комбинация (с помощта на оператора или):
- WS_EX_ACCEPTFILES - можете да плъзнете файлове от Explorer към прозореца, когато потребителят пусне файлове в прозорец с този стил, се изпраща съобщението WM_DROPFILES;
- WS_EX_APPWINDOW - в лентата на задачите се появява бутон за прозорец с този стил;
- WS_EX_CLIENTEDGE - около клиентската част ще има граница и клиентската част ще бъде натисната вътре;
- WS_EX_CONTEXTHELP - в заглавието на прозореца ще се появи контекстен бутон за помощ, този флаг не може да се използва едновременно с WS_MAXIMIZEBOX и WS_MINIMIZEBOX;
- WS_EX_CONTROLPARENT;
- WS_EX_DLGMODALFRAME;
- WS_EX_LEFT;
- WS_EX_LEFTSCROLLBAR;
- WS_EX_LTRREADING;
- WS_EX_MDICHILD;
- WS_EX_NOINHERITLAYOUT;
- WS_EX_NOPARENTNOTIFY;
- WS_EX_OVERLAPPEDWINDOW;
- WS_EX_PALETTEWINDOW;
- WS_EX_RIGHT;
- WS_EX_RIGHTSCROLLBAR;
- WS_EX_RTLREADING;
- WS_EX_STATICEDGE;
- WS_EX_TOOLWINDOW - създава прозорец с малко заглавие, като лента с инструменти;
- WS_EX_TOPMOST - създаденият прозорец ще бъде върху останалите;
- WS_EX_TRANSPARENT;
- WS_EX_WINDOWEDGE.
Можете да намерите дефиниции на други константи в помощта за win32api.
- lpClassName - Името на класа на прозореца. Можете да създадете свои собствени класове с помощта на функцията RegisterClassEx или да използвате предварително дефинираните: редактиране, бутон, статично, лента за превъртане, комбобокс и други;
- lpWindowName - текстът, който ще се появи в заглавието на прозореца (ако прозорецът има заглавие), върху бутона (ако класът на прозореца е бутон), в полето за въвеждане на текст (ако класът на прозореца е редактиран);
- dwStyle - списък на основните стилове на прозореца. Съдържа няколко от следните константи, свързани с оператора или:
- WS_BORDER - прозорецът ще има тънка граница;
- WS_CAPTION - прозорецът ще има заглавие;
- WS_CHILD или WS_CHILDWINDOW - прозорецът ще бъде дете, тоест ще бъде изцяло разположен вътре в някой друг прозорец;
- WS_CLIPCHILDREN - площта, заета от дъщерни прозорци, няма да бъде преначертана;
- WS_CLIPSIBLINGS - преначертаването на един дъщерен прозорец не засяга другите;
- WS_DISABLED - прозорецът е създаден недостъпен, той може да бъде отключен с помощта на функцията EnableWindow;
- WS_DLGFRAME - създава прозорец с рамка като диалогови прозорци;
- WS_GROUP - за дъщерен прозорец (със стил WS_CHILD) дефинира първия елемент в групата, когато натиснете Tab, той ще получи фокуса, групата се простира до следващия дъщерен прозорец със същия стил, можете да се придвижвате в групата с помощта на курсорите;
- WS_HSCROLL - създава прозорец с хоризонтална лента за превъртане;
- WS_ICONIC или WS_MINIMIZE - създаденият прозорец първоначално е минимизиран;
- WS_MAXIMIZE - създаденият прозорец първоначално е увеличен;
- WS_MAXIMIZEBOX - създаваният прозорец има бутон за увеличаване;
- WS_MINIMIZEBOX - създаваният прозорец има бутон за минимизиране;
- WS_OVERLAPPED - създава се припокриващ се прозорец със заглавие и граница;
- WS_OVERLAPPEDWINDOW - комбинация от флаговете WS_OVERLAPPED, WS_CAPTION, WS_SYSMENU, WS_THICKFRAME, WS_MINIMIZEBOX и WS_MAXIMIZEBOX;
- WS_POPUP - създава се прозорец, който първоначално няма рамка и заглавие, не може да се използва със стила WS_CHILD;
- WS_SIZEBOX или WS_THICKFRAME - създава се прозорец, който може да бъде преоразмерен;
- WS_SYSMENU - създава се прозорец с икона на системно меню, трябва да се използва с флага WS_CAPTION;
- WS_TABSTOP - създава дъщерен прозорец, който може да получи фокус на въвеждане, когато натиснете Tab;
- WS_TILEDWINDOW - комбинация от WS_OVERLAPPED, WS_CAPTION, WS_SYSMENU, WS_THICKFRAME, WS_MINIMIZEBOX и WS_MAXIMIZEBOX флагове;
- WS_VISIBLE - създава прозорец, който първоначално се вижда. Ако не посочите този флаг за прозорец, тогава никога няма да го видите (освен ако не използвате функцията ShowWindow);
- WS_VSCROLL - създаденият прозорец ще има вертикална лента за превъртане;