Статический текст

Статические элементы управления это надписи для других органов управления. Создается на основе класса “static”.

Рис.8 Окно со статическим текстом

Для создания такого элемента надо объявить переменную типа HWND (идентификатор окна) и после создания главного окна прило ж ения hWnd вызывать функцию CreateWindow:

HWND hStatic= CreateWindow("static", // класс

"текст текст текст текст",//текст

WS_CHILD | WS_VISIBLE,

15,10,//х и у,

145, 20,//ширина и высота

hWnd,// родитель

NULL,

hInstance, NULL);

Орган управления выводит текст (используя для этого функцию DrawText), выравнивая его влево и выполняя свертку слов. Текст, который не поместился в окне, обрезается. Выполняется замена символов табуляции на пробелы.

Стили указываются третьим параметром при создании элемента.

SS_LEFT, SS_RIGHT, SS_CENTER – выравнивание текста.

SS_BLACKRECT, SS_GRAYRECT и SS_WHITERECT – различные рамки.

Изменить текст в элементе hStatic – вызвать SetWindowText(hStatic, lpszString), где вторым параметром указать новый текст.

Кнопки

Кнопки – это органы управления, которые уведомляют родительское окно о том, что пользователь выбрал этот орган управления. Для создания кнопки, приложение должно создать дочернее окно на базе класса "button". Для этого надо объявить переменную для сохранения идентификатора окна и определить идентификатор органа управления.

#define IDB_Help 1// идентификатор элемента управления (кнопки)

HWND hWnd, hHelpButton; // идентификаторы окон

hHelpButton = CreateWindow("button",// класс окна

"Help",,// надпись на кнопке

WS_CHILD | WS_VISIBLE | BS_DEFPUSHBUTTON,// стиль кнопки

10, 30, //координаты левого верхнего угла кнопки

40, 20, //ширина и высота

hWnd, //родительское окно, которое будет получать сообщения от кнопки

(HMENU)IDB_Help,// идентификатор кнопки

hInstance, NULL);

После этого родительское окно будет получать от кнопки сообщение WM_COMMAND. Этим сообщением кнопка информирует родительское окно о том, что с ней что-то сделали, например, нажали.

В младшем слове wParam передается идентификатор органа управления (IDB_Help).

Старшее слово содержит код извещения от органа управления (notification code), по которому можно судить о том, какое действие было выполнено над органом управления.

Для кнопки это – BN_CLICKED – «нажали».

lParam содержит идентификатор дочернего окна (HWND hHelpButton).

В функции окна в операторе switch добавляется обработка сообщения WM_COMMAND.

case WM_COMMAND: {if(LOWORD(wParam) == IDB_Help) {// обработчик нажатия кнопки }

Стиль кнопки влияет на ее внешний вид и поведение.

Таблица 16 Константы для создания кнопок
  Стиль кнопки Описание
  BS_PUSHBUTTON Стандартная кнопка.
  BS_DEFPUSHBUTTON Стандартная кнопка, срабатывает по нажатию клавиши Enter.
  BS_AUTO3STATE 3 состояния (выключено, включено, не активно), квадратная форма, текст размещается справа, перерисовываются автоматически.
  BS_CHECKBOX 2 состояния (выключено/включено), квадратная форма, НЕ перерисовываются автоматически.
  BS_AUTORADIOBUTTON 2 состояния (выключено/включено), круглая форма, перерисовываются автоматически.
  BS_RADIOBUTTON 2 состояния (выключено/включено), круглая форма, НЕ перерисовываются автоматически.
  BS_OWNERDRAW Внешний вид определяется родителем.
  BS_GROUPBOX Рамка, не получает сообщений.

Управление кнопкой из приложения возможно через функции или через посылку соответствующих сообщений.


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



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