Органы управления

Таблица стилей окна.

Лекция №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 Многостраничный редактор текста.

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: