Таблица стилей окна.
Лекция №4 (06.10.10)
WS_BORDER — окно с рамкой.
WS_THICKFRAME — окно с тонкой рамкой.
WS_DLGFRAME — окно с двойной рамкой.
WS_CAPTION — окно с заголовком.
WS_SYSMENU — окно системного меню.
WS_MAXIMIZEBOX — кнопка увелечения размера.
WS_MINIMIZEBOX — кнопка сворачивания в пиктограмму.
WS_HSCROLL — окно с вертикальной прокруткой.
WS_WSCROLL — окно с горизонтальной прокруткой.
WS_DISABLED — окно при создании заблокировано.
WS_OVERLAPPEND — базовый стиль для перекрывающихся окон.
WS_OVERLAPPENDWINDOW = WS_OVERLAPPEND |WS_CAPTION|WS_SYSMENU|
WS_THICKFRAME|WS_MINIMIZEBOX|WS_MAXIMIZEBOX — через побитовое «ИЛИ». Для обычных окон.
WS_POPUP = WS_POPUPWINDOW|WS_BORDER|WS_SYSMENU. Для Pop-Up окон.
WS_CHILD — для дочерних окон.
Windows регистрирует несколько предопределенных классов окна. Приложения могут создавать окна на базе предопределенных классов окна. При этом им не требуется определять для этих окон Функцию Окна. Эти функции уже определены и находятся внутри Windows. Для создания окна на базе предопределенного класса необходимо вызвать функцию CreateWindow и в качестве первого параметра указать строку, содержащую имя класса.
|
|
Имена стандартных классов:
«button» - кнопка.
«edit» - поле ввода.
«static» - неизменяемый элемент.
«listBox» - список.
«scrollBar» - полоса прокрутки.
«comboBox» - комбинация списка и однострочного поля ввода.
Пример приложения, создающего в своем главном окне однострочный редактор текста и кнопку с надписью «ОК». После ввода текста и нажатия кнопки на экране появляется сообщение, состоящее из введенного текста.
До функции WinMain вставить:
#define ID_EDIT 1
#define ID_BUTTON 2
Идентификаторы будут использоваться при обработке сообщений от этих органов управления.
WndProc(HWND hwnd, UIN msg, WPARAM wParam, LPARAM lParam)
{
static HWND hEdit;
static HWND hButton;
switch(msg)
{
case WM_CREATE:
{
hEdit = CreateWindow(«edit», NULL, WS_CHILD|WS_VISIBLE|WS_BORDER| ES_LEFT, 30, 30, 300, 30, hwnd, (HMENU) ID_EDIT, hInst, NULL);
hButton = CreateWindow(«button», NULL, WS_CHILD|WS_VISIBLE| BS_PUSHBUTTON, 80, 80, 50, 40, hwnd, (HMENU) ID_BUTTON, hInst, NULL);
return 0;
}
case WM_SETFOCUS:
{
SetFocus(hEdit);
return 0;
}
case WM_COMMAND: // Сообщение возникает при использовании органов // управления
if(wParam == ID_EDIT)
{
if(HIWORD(lParam) == EN_ERRSPACE) // Нехватка памяти
MessageBox(hwnd, «Мало памяти», «Сообщение», MB_OK);
}
else if(wParam == ID_BUTTON)
{
BYTE chBuff[80];
WORD cbText;
*(WORD*)chBuff — sizeof chBuff — 1 //Записывается в первое слово //буфера значение размера //буфера в байтах.
CbText = SendMessage(hEdit, EM_GETLINE, 0, //Функция возвращает
(LPARAM)(LPSTR)chbuff); // количество байт в // буфере.
chBuff[cbText] = «\0»
MessageBox(hwnd, chBuff, «Сообщение», MB_OK);
}
return 0;
}
case WM_DESTROY:
{
PostQuitMessage(0);
return 0;
}
}
return DefWindowProc(hwnd, msg, wParam, lParam);
}
Cтили кнопок:
Стиль кнопки | Внешний вид | Описание |
BS_3STAT | (Рис. 1) | Переключатель с тремя состояниями – включено, выключенно, неактивно. |
BS_AUTO3STAT | (Рис. 1) | Тоже самое, но внешний вид изменяется автоматически при переключении |
BS_CHECKBOX | (Рис. 1) | Переключатель с двумя состояниями – вкл и выкл. |
BS_AUTOCHECKBOX | (Рис. 1) | Тоже самое, но внешний вид изменяется автоматически. |
BS_RADIOBUTTON | (Рис. 2) | Переключатель с двумя состояниями. Реализует кнопки с зависимой фиксацией. |
BS_AUTORADIOBUTTON | (Рис. 2) | Тоже самое, но состояние меняется автоматически. |
BS_DEFPUSH | (Рис. 3) | Стандартная кнопка с толстой рамкой. |
BS_PUSHBUTTON | (Рис. 4) | Стандартная кнопка, но без рамки. |
BS_GROUPBOX | (Рис. 5) | Прямоугольная область, внутри которой находятся другие органы управления. |
BS_LEFTEXT | (Рис. 6) | Используется вместе с другими стилями для переноса текста в левую сторону. |
BS_OWNERDRAW | Вид кнопки определяется родительским окном. |
Стили редактора текста.
|
|
Именнованная константа. | Описание |
ES_AUTOHSCROLL | Автоматическа прокрутка по горизонтали. |
ES_AUTOWSCROLL | Автоматическа прокрутка по вертикали. |
ES_CENTER | |
ES_LEFT | Выравнивание текста по левому краю. |
ES_RIGHT | Выравнивание текста по правому краю. |
ES_LOWERCASE | Автоматическое преобразование в строчные буквы. |
ES_UPPERCASE | Автоматическое преобразование в заглавные буквы. |
ES_PASSWORD | Режим ввода пароля. |
ES_READONLY | Только для просмотра текста. |
ES_MULTILINE | Многостраничный редактор текста. |