Шаг 79.
Среда программирования Visual C++.
Второе "лирическое" отступление: методы класса CButton

    На этом шаге мы перечислим основные методы класса CButton.

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

Таблица 1. Основные методы класса CButton
Метод Назначение
CButton(); Конструирует объект класса CButton
BOOL BOOL Create (LPCTSTR lpszCapition, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID); Построение объекта класса CButton происходит в два этапа. Сначала вызывается конструктор, затем функция Create, которая создает командную кнопку Windows и подключает к ней объект класса CButton. Если задан стиль WS_VISIBLE, Windows передает кнопке все сообщения, необходимые для ее активизации и изображения.

    Параметры:

  • dwStyle - задает стиль кнопки. Можно использовать произвольную комбинацию стилей.
  • rect - задает положение и размеры кнопки интерфейсного элемента. Является объектом класса CRect или структурой CRECT.
  • pParentWnd - задает родительское окно кнопки (обычно CDialog). He может принимать значение NULL.
  • nID - задает идентификатор (ID) кнопки.
virtual void DrawItem (LPDRAWITEMSTRUCT lpDrawItemStruct); Вызывается каркасом приложения при изменении вида полъзовательской кнопки. Для таких кнопок устанавливается стиль BS_OWNERDRAW. Для реализации отображения пользовательского класса CButton переопределите эту функцию. Приложение должно восстановить все объекты GDI (интерфейса графических устройств), избранные для отображения содержимого, указываемого параметром lpDrawItemStruct, до того как закончится выполнение функци-члена.

    Параметр lpDtawItemStruct - длинный указатель на структуру DRAWITEMSTRUCT, содержащую информацию об отображаемом элементе типе рисунка.

HBITMAP GetBitmap() const; Возвращает дескриптор ранее установленного функцией SetBitmap() растрового изображения, связанного с кнопкой
UINT GetButtonStyle() const; Эта функция возвращает значения стилей группы BS_ (и только этой группы)
int GetCheck() const; Определяет контрольное состояние переключателя или флажка
HCURSOR GetCursor(); Возвращает дескриптор установленного ранее функцией SetCursor() курсора, связанного с кнопкой
HICON GetIcon() const; Возвращает дескриптор установленного ранее функцией SetIcon() значка, связанного с кнопкой
UINT GetState() const; Определяет состояние переключателя
HBITMAP SetBitmap (HBITMAP hBitmap); Связывает с кнопкой новое растровое изображение. Растровое изображение будет автоматически помещено на кнопке и по умолчанию будет центрировано. Если размеры изображения слишком велики для кнопки, оно будет обрезано по размерам кнопки. Вы можете выбрать следующие параметры размещения:
  • BS_TOP;
  • BS_LEFT;
  • BS_RIGHT;
  • BS_CENTER;
  • BS_BOTTOM;
  • BS_VCENTER.

    В отличие от класса CBitmapButton, использующего четыре растровых изображения на кнопку, функция SetBitmap() требует только одно растровое изображение для кнопки. При нажатии кнопки растровое изображение сдвигается вниз и вправо. Параметр hBitmap - дескриптор растрового изображения

void SetButtonStyle (UINT nStyle, BOOL bRedraw = TRUE); Изменяет стиль кнопки. Функция-член GetButtonStyle() используется для того, чтобы определить стиль кнопки. Младшее слово полного стиля кнопки сообщает о специфичном для нее стиле. Параметры:
  • nStyle - задает стиль кнопки;
  • bRedraw - при указании ненулевого значения и по умолчанию задает перерисовку кнопки. Нулевое значение соответствует запрету на перерисовку.
void SetCheck (int nCheck); Устанавливает или переустанавливает контрольное состояние переключателя или флажка. Эта функция-член не влияет на обычную кнопку. Параметр nCheck задает контрольное состояние. Этот параметр может принимать одно из следующих значений:
  • 0 - установить помеченное состояние кнопки;
  • 1 - установить непомеченное состояние кнопки;
  • 2- установить промежуточное состояние кнопки. Это значение можно использовать только в том случае, если стиль кнопки установлен в BS_3STATE или BS_AUTO3STATE.
HCURSOR SetCursor (HCURSOR hCursor); Связывает с кнопкой новый курсор. Он автоматически помещается на кнопку и по умолчанию центрируется. Если курсор слишком велик для кнопки, он обрезается по размеру кнопки. Вы можете избрать следующие параметры размещения:
  • BS_TOP;
  • BS_LEFT;
  • BS_RIGHT;
  • BS_CENTER;
  • BS_BOTTOM;
  • BS_VCENTER.
В отличие от класса CBitmapButton, который использует четыре изображения на кнопку, функция SetCursor() требует только один курсор. Когда кнопка нажата, курсор сдвигается вниз и вправо. Параметр hCursor - дескриптор курсора.
HICON SetIcon (HICON hIcon); Связывает с кнопкой новый значок. Значок автоматически помещается на кнопку и по умолчанию центрируется. Если значок слишком велик для кнопки, он обрезается по размерам кнопки. Вы можете выбрать следующие параметры размещения:
  • BS_TOP;
  • BS_LEFT;
  • BS_RIGHT;
  • BS_CENTER;
  • BS_BOTTOM;
  • BS_VCENTER.
В отличие от класса CBitmapButton, который использует четыре изображения на кнопку, функция SetIcon() требует только один значок на кнопку. Когда кнопка нажата, значок сдвигается вниз и вправо. Параметр hIcon - дескриптор значка.
void SetState (BOOL bHighlight); Устанавливает выделенное состояние кнопки. Эта функция работает только с обычными командными кнопками и не оказывает влияние на флажки или переключатели. Интерфейсный элемент кнопки автоматически выделяется, когда пользователь щелкает на нем и удерживает левую кнопку мыши. Выделение снимается, когда пользователь отпускает кнопку мыши. Параметр bHighlight устанавливает, должна ли кнопка быть выделена. Ненулевое значение означает выделить кнопку, нулевое снимает любое выделение

    Со следующего шага мы начнем рассмотривать работу с постоянными данными.




Предыдущий шаг Содержание Следующий шаг