Константы основных стилей:
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 - создаваемое окно будет иметь вертикальную полосу прокрутки;
X - горизонтальная координата верхнего левого угла окна; если вы хотите предоставить windows возможность расположить окно по умолчанию, укажите здесь CW_USEDEFAULT, в этом случае следующий параметр игнорируется;
Y - вертикальная координата верхнего левого угла окна.
Константы расширенных стилей:
WS_EX_ACCEPTFILES - определяет, что окно, созданное с этим стилем принимает файлы информационной технологии "перетащи и вставь" (drag-and-drop), посылается сообщение WM_DROPFILES;
WS_EX_APPWINDOW - на панели задач для окна с таким стилем появляется кнопка;
WS_EX_CLIENTEDGE - вокруг клиентской части будет рамка, причем клиентская часть будет вдавлена внутрь;
WS_EX_CONTEXTHELP - в заголовке окна появится кнопка контекстной помощи, это флаг не может использоваться одновременно с WS_MAXIMIZEBOX и WS_MINIMIZEBOX;
WS_EX_TOOLWINDOW - создается окно с маленьким заголовком, как у панели инструментов;
WS_EX_TOPMOST - создаваемое окно будет находиться поверх остальных;
WS_EX_CONTROLPARENT - позволяет пользователю перемещаться по дочерним окнам родительского окна, используя клавишу табуляции TAB;
WS_EX_DLGMODALFRAME - cоздает окно с двойной рамкой. В отличие от стиля WS_DLGFRAME, прикладная программа может также определять стиль WS_CAPTION, чтобы создать область заголовка для окна;
WS_EX_LEFT - окно будет имеет общеупотребительные свойства "выравнивания по левой границе";
WS_EX_LEFTSCROLLBAR - если язык оболочки Еврейский, Арабский или другой язык, который придерживается иного порядка чтения, вертикальная линейка прокрутки (если появляется) - слева от рабочей области. Для других языков, этот стиль игнорируется и не обрабатывается как ошибка;
WS_EX_LTRREADING - текст в окне отображается используя свойство порядка чтения Слева - Направо. Это - по умолчанию;
WS_EX_MDICHILD - cоздает MDI дочернее окно;
WS_EX_NOPARENTNOTIFY - определяет, что дочернее окно, созданное с этим стилем не посылает сообщение WM_PARENTNOTIFY родительскому окну, когда оно создается или разрушается;
WS_EX_OVERLAPPEDWINDOW - объединяет стили WS_EX_CLIENTEDGE и WS_EX_WINDOWEDGE;
WS_EX_PALETTEWINDOW - объединяет стили WS_EX_WINDOWEDGE, WS_EX_TOOLWINDOW и WS_EX_TOPMOST;
WS_EX_RIGHT - окно имеет общеупотребительные свойства "выравнивание по правому краю". Оно зависит от класса окна. Этот стиль имеет эффект только тогда, если язык оболочек Еврейский, Арабский или другой язык, который поддерживает иной порядок выравнивания для чтения; иначе, стиль игнорируется и не обрабатывается как ошибка;
WS_EX_RIGHTSCROLLBAR - вертикальная линейка прокрутки (если появляется) - справа от рабочей области. Это - по умолчанию;
WS_EX_RTLREADING - если язык оболочки Еврейский, Арабский или другой язык, который придерживается иного порядка выравнивания для чтения, текст в окне отображается, используя свойства порядка чтения, Справа - Налево. Для других языков, стиль игнорируется и не обрабатывается как ошибка;
WS_EX_STATICEDGE - создает окно с трехмерным стилем рамки, предполагается использовать для элементов, которые не принимают вводимую информацию от пользователя;
WS_EX_TRANSPARENT - определяет, что окно, созданное с этим стилем должно быть прозрачным. То есть любые окна, которые появляются из-под окна, не затеняются им. Окно, созданное с этим стилем принимает WM_PAINT сообщения только после того, как все сестринские окна под ним модифицировались;
WS_EX_WINDOWEDGE - Определяет, что окно имеет рамку с выпуклым краем
WS_EX_NOINHERITLAYOUT - окно, созданное с этим стилем не передает свою компоновку своим дочерним окнам.
Примеры использования стилей:
W.Style := W.Style and not (WS_MAXIMIZEBOX);
У окна присутствует заголовок и кнопки [Свернуть], [Развернуть на весь экран] - кнопка неактивна, [Закрыть];
W.Style := W.Style and not (WS_MAXIMIZEBOX) and not (WS_MINIMIZEBOX);
У окна присутствует заголовок и кнопка [Закрыть]. Это окно отображается на панели задач;
W.Style := W.Style and not WS_TILEDWINDOW;
Окно без заголовка иконки и упровляющих кнопок. Закрыть его можно комбинацией Alt+F4;
W.ExStyle := WS_EX_TOOLWINDOW;
У окна зауженный заголовок и кнопка [Закрыть]. В заголовке окна отсутствует иконка. Это окно не отображается на панели задач и в трее.
W.ExStyle := WS_EX_LAYERED;
Применение этого стиля создает полностью невидимое окно. О его присутствии можно судить только по отображению на панели задач. Закрыть окно можно из панели задач (правый клик по иконке, затем выбрать - Закрыть окно).
uses windows, KOL;
var W:PControl;
begin
W := NewForm( Applet, 'MiniForm' ).SetClientSize( 400, 300 );
W.CenterOnParent;
W.Style :=
W.ExStyle :=
Run( W );
end.