Введение в программирование

       

Класс CButton


Класс CButton применяется для работы со следующими элементами управления:

  • командная кнопка;
  • флажок;
  • радиокнопка (переключатель).

Элемент управления "кнопка", называемый также командная кнопка, как правило, используется для обработки сообщения BN_CLICKED.

Свойство Default Button позволяет указать командную кнопку, устанавливаемую как кнопка по умолчанию: нажатие пользователем клавиши Enter интерпретируется как щелчок на данной кнопке.

Свойство Icon позволяет указать, что вместо текста будет отображена пиктограмма (стиль BS_ICON).

Свойство Bitmap позволяет указать, что вместо текста будет отображено изображение (стиль BS_BITMAP).

Свойство Multiline используется в том случае, если текст слишком длинный, чтобы уместиться на кнопке в одну строку.

Для работы с элементом управления "кнопка" следует использовать класс CButton.

Элемент управления "флажок Check Box" может иметь два или три состояния: включенное, выключенное или неопределенное (необязательно).

Кроме возможности связывания флажка с объектом типа CButton, флажок можно связать с переменной типа BOOL.

Свойство Auto позволяет создавать элемент управления, переключение состояний (включен/выключен) которого происходит автоматически при щелчке мышью.

Свойство Tri-state используется для создания элемента управления "флажок", имеющего три состояния. Одновременно с состояниями "включен" или "выключен", используется состояние "неопределен", в котором флажок выглядит "посеревшим". Если значение свойства Push Like установлено равным True, то создается элемент управления "флажок", отображаемый как командная кнопка: при нажатии флажок имеет вид вдавленной кнопки, а при ненажатом состоянии - выпуклой.

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

Элемент управления "радиокнопка" (Radio Button) аналогичен флажку, но не может иметь неопределенного состояния. Также при объединении несколько радиокнопок в группу только одна из них может иметь включенное состояние.


Кроме возможности связывания флажка с объектом типа CButton, радиокнопку можно связать с переменной типа BOOL.

При использовании класса CButton тип кнопки можно определить ее стилем, указываемым в методе Create при создании кнопки. Класс CButton наследуется классом CBitmapButton, реализующим кнопки с изображениями вместо текста.

Создать кнопку можно как с использованием редактора ресурсов, так и непосредственно программным путем.

Если объект CButton создается расположенным в диалоговом окне, то он автоматически разрушается при закрытии пользователем этого диалогового окна.

Если же объект был создан динамически вызовом метода new, то для его разрушения следует вызвать метод delete.

Класс CButton предоставляет ряд методов, включая следующие:

  • Create - метод создает Windows-кнопку для объекта CButton и при успешном завершении возвращает ненулевое значение. При вызове метода кнопке могут быть присвоены следующие флажки стиля (оконного объекта):
    • WS_CHILD - устанавливается всегда;
    • WS_VISIBLE - видимая кнопка;
    • WS_DISABLED - недоступная кнопка;
    • WS_GROUP - используется для образования групп кнопок: устанавливается для первой кнопки группы;
    • WS_TABSTOP - устанавливается для включения кнопки в табулированный порядок.


  • GetCheck - метод определяет состояние кнопки (флажка или радиокнопки), созданной как BS_AUTOCHECKBOX, BS_AUTORADIOBUTTON, BS_AUTO3STATE, BS_CHECKBOX, BS_RADIOBUTTON, BS_3STATE, и возвращает одно из следующих значений:
    • 0 - кнопка не включена (не отмечена);
    • 1 - кнопка включена (отмечена);
    • 2 - кнопка находится в неопределенном состоянии (только для кнопок, имеющих флажки стиля BS_3STATE или BS_AUTO3STATE).


    Для командных кнопок метод возвращает значение 0.
  • GetState - метод определяет текущее состояние кнопки. Возвращаемое значение формируется как комбинация набора значений, выделяемых с помощью следующих масок:
    • 0x0003 - определяет состояние кнопки-флажка или радиокнопки:
      • 0 - кнопка не включена (не отмечена);
      • 1 - кнопка отмечена;
      • 2 - состояние кнопки не определено.
    • 0x0004 - определяет состояние выделения кнопки: при значении 0 - кнопка не нажата (пользователь щелкнул на ней левой кнопкой мыши и держит ее);
    • 0x0008 - определяет фокус: при значении 1 - кнопка находится в фокусе.


  • SetBitmap- метод "растровое изображение, отображаемое на данной кнопке".

    Например:

    CButton myButton; // Создание кнопки с изображением myButton.Create(_T("Кнопка 1"), WS_CHILD|WS_VISIBLE|BS_BITMAP, CRect(10,10,60,50), pParentWnd, 1); myButton.SetBitmap( ::LoadBitmap(NULL, MAKEINTRESOURCE(OBM_CHECK)) );
  • SetButtonStyle - метод изменяет стиль кнопки.
  • SetCheck - метод устанавливает новое состояние кнопки-переключателя или радиокнопки.



Содержание раздела