Празен прозорец на 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 - създаденият прозорец ще има вертикална лента за превъртане;