Временные окна.
Перекрывающиеся окна.
Пример. Функция окна, печатающая текст.
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
switch(msg)
{
case WM_PAINT:
{
hdc = BeginPaint(hwnd, &ps);
TextOut(hdc, 10, 20, wmPaintMessage,18);
EndPaint(hwnd, &ps);
return 0;
}
case WM_LBUTTONDOWN:
{
hdc = GetDC(hwnd);
TextOut(hdc, 20, 40, lButtonMessageBoxContent, 24);
ReleaseDC(hwnd, hdc);
return 0;
}
case WM_DESTROY:
{
PostQuitMessage(0);
return 0;
}
}
return DefWindowProc(hwnd, msg, wParam, lParam);
}
Стили класса окна.
Стиль класса окна определяет внешний вид и поведение всех окон, созданных на базе данного класса. Стиль класса окна задается в виде отдельных битов, для которых определены символические имена с префиксом CS:
CS_GLOBALCLASS
Класс окна доступен другим приложениям.
CS_CLASSDC
Используется единый контекст отображения.
CS_OWNDC
Для каждого окна — отдельный контекст отображения.
CS_PARENTDC
Используется контекст родительского окна.
CS_HREDRAW
CS_VREDRAW
Перерисовка при изменении ширины и высоты окна соответсвтенно.
CS_DBLSLKS
Окно будут отслеживать двойной щелчок мыши. Будет получать сообщение с кодом WM_LBUTTONDBLCLK
|
|
Стиль окна.
Уточняет внешний вид и поведение отдельного окна. Существует три основных стиля окна
1) Перекрывающиеся
2) Временные
3) Дочерние
Обычно используются в качестве главного окна приложения. Такие окна имеют заголовок и рамку. Дополнительно перекрывающиеся окна могут иметь системное меню, кнопки изменения размера, кнопки сворачивания в пиктограмму, а также вертикальные и горизонтальные полосы прокрутки. Приложение может создать несколько перекрывающихся окон, одни из которых могут принадлежать другим. Если окно-хозяин сворачивается в пиктограмму, все окна, которыми он владеет становятся невидимыми. При уничтожении окна, автоматически уничтожается и все принадлежащие ему окна. Перекрывающееся окно, которое не имеет владельца может располагаться в любом месте экрана и принимать любые размеры. Подчиненные окна всегда располагаются над поверхностью окна владельца. Координаты создаваемых перекрывающихся окон всегда указываются по отношению ко всему экрану.
Используются для вывода информационных сообщений. Временные окна могут не иметь заголовка. Все свойства перекрывающихся окон, связанные с владением и расположением на экране справедливы и для временных окон.
Используются для создания органов управления, таких как кнопки, переключатели и т. д. В отличие от перекрывающихся или временных окон, дочерние окна изначально не имели не рамки, не заголовка. Дочерние окна сами рисуют всё, что в них изображено. Дочерние окна всегда располагаются на поверхности окна-родителя. При создании дочернего окна, начало системы координат находится в левом верхнем углу внутренней поверхности окна родителя. Дочернее окно никогда не может выйти за пределы родительского окна и всегда перемещается вместе с ним.