Некоторые стили класса окна.
CS_VREDRAW — Перерисовывать содержимое окна при изменении высоты.
CS_HEDRAW — Перерисовывать содержимое окна при изменении ширины.
CS_NOCLOSE — Окно не будет иметь кнопку ЗАКРЫТЬ.
CS_DBLCLKS — Посылать сообщение оконной функции при двойном щелчке мыши в пределах окна.
CS_OWNDC — Для каждого окна данного класса выделяется собственный контекст.
CS_CLASSDC — Все окна данного класса используют один контекст.
CS_PARENTDC — Дочерние окна данного класса наследуют контекст родительского окна.
CS_GLOBALCLASS — Класс окна, не зависящий от текущего HINSTANCE.
Стандартные иконки, имеющиеся в системе.
IDI_APPLICATION IDI_ASTERISK
IDI_EXCLAMATION IDI_HAND
IDI_QUESTION IDI_WINLOGO
Стандартные курсоры, имеющиеся в системе.
IDC_APPSTARTING Стрелка с маленькими песочными часами.
IDC_ARROW Стандартная простая стрелка.
IDC_UPARROW Вертикальная стрелка.
IDC_SIZENESW Стрелки изменения
IDC_SIZEN -размера окна
IDC_SIZENWSE -разного
IDC_SIZEWE -направления.
IDC_CROSS Перекрестье.
IDC_IBEAM Текстовый курсор (вертикальная черта)
IDC_NO Перечеркнутая окружность.
IDC_WAIT Песочные часы.
IDC_ICON Только в Windows NT: Empty icon.
IDC_SIZE Только в Windows NT: Четырех направленная стрелка изменения размера окна.
IDC_SIZEALL Такой же, как IDC_SIZE.
Стандартные кисти, имеющиеся в системе.
WHITE_BRUSH — Белая.
LTGRAY_BRUSH — Светло серая.
GRAY_BRUSH — Серая.
DKGRAY_BRUSH — Темно серая,
BLACK_BRUSH — Черная,
NULL_BRUSH — Прозрачная,
HOLLOW_BRUSH — Прозрачная.
Две последние (прозрачные) могут вызвать нестабильную работу программы, если их использовать в качестве фона окна.
Кроме перечисленных кистей можно создать кисть любого цвета, но об этом потом.
СТИЛИ ЭКЗЕМПЛЯРОВ ОКОН | |
WS_SYSMENU | Окно имеет системное меню. |
WS_MAXIMIZEDBOX | У окна имеется кнопка МАКСИМИЗАЦИИ (и присутствует соответствующий пункт в системном меню). |
WS_MINIMIZEDBOX | У окна имеется кнопка МИНИМИЗАЦИИ (и присутствует соответствующий пункт в системном меню). |
WS_SIZEBOX | Окно может менять размеры. |
WS_MAXIMIZE | Создается максимизированное окно. |
WS_MINIMIZE | Создается минимизированное окно. |
WS_ICONIC | То же самое. |
WS_VISIBLE | Создается видимое окно. |
WS_DISABLED | Создается запрещенное окно. |
WS_BORDER | Окно имеет рамку. |
WS_THICKFRAME | Окно имеет толстую рамку. |
WS_DLGFRAME | Окно имеет рамку, как у диалоговых окон. |
WS_CAPTION | WS_BORDER | WS_DLGFRAME |
WS_OWERLAPPED | Окно имеет заголовок и рамку. |
WS_TILED | То же самое. |
WS_POPUP | Всплывающее окно. Несовместим с WS_CHILD. |
WS_CHILD | Дочернее окно. По умолчанию имеет только рабочую область. Меню не имеют никогда. Не совместим с WS_POPUP. |
WS_CHILDWINDOW | То же. |
WS_TABSTOP | Окно может получать фокус при нажатии клавиши Tab. |
WS_VSCROLL | Окно может иметь вертикальную линейку прокрутки. |
WS_HSCROLL | Окно может иметь вертикальную линейку прокрутки. |
WS_CLIPCHILDREN | Области, перекрываемые дочерними окнами, не прорисовываются. |
WS_CLIPSIBLING | Области, перекрываемые соседними окнами, не прорисовываются. |
WS_OWERLAPPEDWINDOW | WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_ MAXIMIZEBOX |
WS_TILEDWINDOW | То же самое. |
WS_POPUPWINDOW | WS_SYSMENU | WS_BORDER | WS_POPUP |
Режимы отображения окна. | ||
SW_HIDE | Скрыть и активизировать другое. | |
SW_NORMAL SW_SHOWNORMAL | Активизировать и отобразить в соответствии с размерами, заданными при его создании. | |
SW_SHOWMINIMIZED | Активизировать и отобразить в виде иконки. | |
SW_MAXIMIZE SW_SHOWMAXIMIZED | Активизировать и отобразить на весь экран. | |
SW_SHOWNOACTIVATE | Окно отображается в его текущих размерах. При этом активное окно остается активным, неактивное – неактивным. | |
SW_SHOW | Активизировать и отобразить в текущих размерах. | |
SW_MINIMIZE | Отобразить в виде иконки и активизировать предыдущее по уровню. | |
SW_SHOWMINNOACTIVE | Отобразить в виде иконки. При этом активное – остается активным, неактивное – неактивным. | |
SW_SHOWNA | Отобразить в текущем состоянии. При этом активное остается активным, неактивное – неактивным. | |
SW_RESTORE | Активизировать и отобразить в соответствии с размерами, заданными при его создании. Используется при восстановлении размеров минимизированных, максимизированных, измененных окон. | |
SW_SHOWDEFAULT SW_MAX | Установить все параметры окна в соответствии с заданными при его создании. |
Особенности взаимодействия стилей отображения с режимами отображения функции ShowWindow().
Для того чтоб окно отобразилось на экране необходимо использовать или стиль WS_VISIBLE или функцию ShowWindow() или и то и другое. Если не используется ни то, ни другое, то окно отображено не будет даже в том случае, когда использованы WS_MAXIMIZE или WS_MINIMIZE.
Если используется стиль WS_VISIBLE совместно со стилями WS_MAXIMIZE или WS_MINIMIZE, но не используется функция ShowWindow(), то при этом, если установлен стиль WS_MAXIMIZE, – окно будет отображено в соответствии с его установленными размерами (а не на весь экран). А если установлен стиль WS_MINIMIZE, то окно будет отображено в наиболее ужатом виде, но не в виде иконки и не свернутым.
Если используется функция ShowWindow(), но не используется стиль WS_VISIBLE, то стили WS_MAXIMIZE и WS_MINIMIZE игнорируются, а окно отображается в соответствии с функций ShowWindow().
Если же указан и стиль WS_VISIBLE и функция ShowWindow(), то сначала окно отображается в соответствии со стилями. А затем перерисовывается в соответствии с режимом функции ShowWindow().
Поэтому, если Вы хотите отобразить окно сразу, например в развернутом, или свернутом виде (без двойной перерисовки) то не используйте стили отображения, а указывайте требуемый режим в функции ShowWindow().
Окна сообщений
Окна сообщений – это специальный класс окон, которые служат для быстрого вывода на экран краткой информации и получения реакции на эту информацию от пользователя.
Для создания окна сообщения применяется специальная функция MessageBox(). Она возвращает значение, соответствующее той кнопке, которую нажал пользователь. Возвращаемое значение можно игнорировать.
int = MessageBox(HWND, LPCTSTR,LPCTSTR,UINT)
где: Первый параметр – это хендл родительского окна.
Второй параметр – это текст сообщения.
Третий параметр – это заголовок окна сообщения.
Четвертый параметр – это стиль окна сообщения, который и определяет набор кнопок и отображаемую картинку.
Стили окон сообщений. | |
MB_OK | 1 кнопка “OK”. |
MB_YESNO | 2 кнопки “YES”,“NO” или “ДА”,“НЕТ”. |
MB_OKCANCEL | 2 кнопки “YES”,“CANCEL” или “ДА”,“ОТМЕНА”. |
MB_RETRYCANCEL | 2 кнопки “RETRY”,“CANCEL” или “ПОВТОР”,“ОТМЕНА”. |
MB_YESNOCANCEL | 3 кнопки “YES”,”NO”,“CANCEL” или “ДА”,“НЕТ”,“ОТМЕНА”. |
MB_ABORTRETRYIGNORE | 3 кнопки “ABORT”,”RETRY”,”IGNORE” или “СТОП”,”ПОВТОР”,”ПРОПУСТИТЬ”. |
MB_ICONEXCLAMATION MB_ICONWARNING | ![]() |
MB_ICONINFORMATION, MB_ICONASTERISK | ![]() |
MB_ICONQUESTION | ![]() |
MB_ICONSTOP, MB_ICONERROR, MB_ICONHAND | ![]() |
Возвращаемые значения. | |
IDOK | Нажата кнопка “OK”. |
IDYES | Нажата кнопка “YES” или “ДА”. |
IDNO | Нажата кнопка “NO” или “НЕТ”. |
IDCANCEL | Нажата кнопка “CANCEL” или “ОТМЕНА”. |
IDIGNORE | Нажата кнопка ”IGNORE” или ”ПРОПУСТИТЬ”. |
IDRETRY | Нажата кнопка ”RETRY” или ”ПОВТОР”. |
IDABORT | Нажата кнопка “ABORT” или “СТОП”,” |
Будет на кнопках русский текст или английский зависит от установок Windows.