Среда, 08.01.2025, 20:46
Главная Регистрация RSS поиск
Приветствую Вас, Гость
Меню сайта
Категории раздела
HTML [44]
Visual C++ и MFC [21]
c++ [78]
php [19]
Javascript [15]
C# [51]
загрузки [0]
XNA [10]
создание игр с помощью xna
Наш опрос
Каким языком программирования вы увлекаетесь
Всего ответов: 2420
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Реклама
Главная » Статьи » Visual C++ и MFC

Кнопки. Класс CButton
Кнопки. Класс CButton

Кнопки, кнопки, кому кнопки ?!?! У нас в ассортименте большие, средние, малые, наши и импортные, цветные и черно-белые, на любой вкус и запах !!! Налетай, покупай !!! Насколько вы уже поняли темой данного раздела являются кнопки, а точнее класс CButton, который является базовым для всевозможных видов кнопок. Прибьём пару кнопок ...

Генеалогическое дерево:

Иерархия класса CButton

Конструктор:

CButton( );
 Конструктор класса CButton. 

Функции-члены класса CButton:

BOOL Create( LPCTSTR lpszCaption, DWORD dwStyle, const RECT & rect, CWnd* pParentWnd, UINT nID );
 Создаёт кнопку и присоединяет её к обьекту класса CButton.
 Возвращаемое значение не равно нулю, если все прошло нормально
 и ноль, если наоборот.
 lpszCaption - текст на кнопке.
 dwStyle - определяет стиль кнопки. Может быть комбинацией 
 следующих стилей:
 BS_CHECKBOX - создаёт CHECKBOX ( маленький квадрат с текстом, 
 расположенным справа от него до тех пор пока не прописан стиль
 BS_LEFTTEXT ).
 
 BS_AUTOCHECKBOX - тоже самое, что и BS_CHECKBOX, различие в 
 том, что когда пользователь выбирает checkbox в нем появляется
 галочка, в следующий раз, когда пользователь делает это, 
 галочка исчезает.
 
 BS_RADIOBUTTON - создаёт радио-кнопку ( маленький круг с 
 текстом, расположенным справа от него до тех пор, пока не 
 прописан стиль BS_LEFTTEXT ). Кнопки такого стиля обычно 
 комбинируются в группы взаимоисключаемых возможностей.
 
 BS_AUTORADIOBUTTON - тоже самое, что и BS_RADIOBUTTON, 
 различие в том, что когда пользователь выбирает такую 
 кнопку она автоматически становится активной и убирает 
 подсветку с других радио-кнопок в этой же группе.
 
 BS_3STATE - тоже самое, что и BS_CHECKBOX, различие в 
 том, что кнопка может быть затемнена так как будто она 
 выбрана. Это состояние обычно используется для того, 
 чтобы показать, что кнопка недоступна.
 
 BS_AUTO3STATE - тоже самое, что и BS_3STATE, за 
 исключением того, что кнопка меняет своё состояние, 
 когда пользователь выбирает её.
 
 BS_DEFPUSHBUTTON - создаёт кнопку по умолчанию 
 ( вокруг неё будет тонкая темная рамка ). Если 
 пользователь нажмет ENTER, то запустится обработчик 
 нажатия на эту кнопку.Этот стиль можно установить в 
 свойствах кнопки на вкладке Styles.
 
 BS_GROUPBOX - создает рамку с помощью которой можно 
 обьединять кнопки.
 
 
 BS_LEFTTEXT - применяется с BS_CHECKBOX и BS_RADIOBUTTON 
 ( а также с их модификациями ) .
 Указывает на необходимость вывести текст слева от кнопки.
 
 BS_OWNERDRAW - при указывании данного стиля, кнопку прийдется
 рисовать своими руками ( с помощью вызова функций ).
 Этот стиль можно установить в свойствах кнопки на 
 вкладке Styles.
 BS_PUSHBUTTON - создает обычную кнопку, которая посылает 
 сообщение WM_COMMAND окну-владельцу, когда пользователь
 выбирает её. 
 
 rect - определяет размер и позицию кнопки. 
 pParentWnd - Указатель на окну, которому принадлежит кнопка,
 обычно конечно же CDialog.Этот параметр не может быть равным
 NULL.
 nID - идентификатор кнопки.
 
UINT GetState( ) const;
 Получает состояние radio-кнопки или check-box.

void SetState( BOOL bHighlight );
 Устанавливает подсвечена кнопка или нет.
 bHighlight - флаг, с помощью которого устанавливается или снимается
 подсветка. Если он равен 0, то подсветка снимается, если не ноль, то 
 наоборот.

int GetCheck( ) const;
 Функция, используемая для проверки выбрана ли кнопка ( работает 
 для radio-кнопок и checkbox ).
 Функция может возвращать следующие значения:
 0 - кнопка не выбрана.
 1 - кнопка выбрана.
 2 - состояние кнопки не определено ( кнопка затемнена ).
 
void SetCheck( int nCheck ); 
 Устанавливает выбрана кнопка или нет ( работает 
 для radio-кнопок и checkbox ).
 nCheck - задаёт состояние кнопки. Может принимать следующие 
 значения:
 0 - устанавливает кнопку не выбраной.
 1 - устанавливает кнопку выбраной.
 2 - устанавливает кнопку в неопределенное состояние 
 ( кнопка затемнена ).

UINT GetButtonStyle( ) const;
 Возвращает стиль кнопки.Возможные стили перечислены в описании
 функции Create.

void SetButtonStyle( UINT nStyle, BOOL bRedraw = TRUE );
 Изменяет стиль кнопки.
 nStyle - стиль кнопки.Возможные стили перечислены в описании
 функции Create.
 bRedraw - параметр, определяющий перерисовать кнопку или нет.
 Если 0 - то не следует, иначе отрисовать её заново.

HICON SetIcon( HICON hIcon );
 Устанавливает иконку на кнопке.
 Возвращаемое значение - дескриптор иконки, которая раньше
 находилась на кнопке. 
 hIcon - дескриптор новой иконки.

HICON GetIcon( ) const;
 Возвращает дескриптор, связанной с кнопкой иконки.
 Если с кнопкой не связана иконка то вернется NULL.

HBITMAP SetBitmap( HBITMAP hBitmap );
 Устанавливает рисунок на кнопке.
 Возвращаемое значение - дескриптор рисунка, который раньше
 находился на кнопке. 
 hBitmap - дескриптор нового рисунка.

HBITMAP GetBitmap( ) const;
 Возвращает дескриптор, связанного с кнопкой рисунка.
 Если с кнопкой не связан рисунок то вернется NULL.

HCURSOR SetCursor( HCURSOR hCursor );
 Устанавливает курсор для кнопки.
 Возвращаемое значение - дескриптор курсора, который раньше
 был связан с кнопкой. 
 hCursor - дескриптор нового кусора.

HCURSOR GetCursor( ); 
 Возвращает дескриптор, связанного с кнопкой курсора.
 Если с кнопкой не связан курсор то вернется NULL.

Два основных Кнопочных сообщения:

У Кнопки есть два важных сообщения: BN_CLICKED и BN_DOUBLECLICKED.

Сообщения для кнопки

Сообщение BN_CLICKED приходит, когда пользователь нажимает на кнопку один раз. Сообщение BN_DOUBLECLICKED приходит, когда пользователь делает двойной щелчок на кнопке. Если у вас возникнет необходимость вы можете написать функции-обработчики этих сообщений.

Заключение:

В Заключении романтического знакомства с кнопкой давайте рассмотрим вкладку Styles свойств кнопки.

Стили кнопки
  1. Свойство Default button было описано выше.
  2. Свойство Owner Draw был описано выше
  3. Icon - указывает на то, что на кнопке должна быть иконка вместо текста. Этот стиль называется BS_ICON.
  4. Bitmap - указывает на то, что на кнопке должен быть рисунок ( народное название: битмапина ) вместо текста. Этот стиль называется BS_BITMAP.
  5. Multiline - многострочный текст на кнопке. В том случае если текст не умещается в одну строку, производится перенос на следующую.
  6. Notify - уведомляет окно родителя в том случае, если на кнопку было произведено одиночное или двойное нажатие
  7. Flat - изменяет дизайн кнопки на плоский.
    Плоский OK














    У кнопки OK выставлен стиль Flat.
  8. Horizontal alignment - устанавливает горизонтальное выравнивание текста. Может принимать следующие значения: Left - по левой стороне, Right - по правой стороне, Center - по центру, Default - по умолчанию.
  9. Vertical alignment - устанавливает вертикальное выравнивание текста. Top - по верхней границе, Bottom - по нижней границе, Center - по центру, Default - по умолчанию.
Категория: Visual C++ и MFC | Добавил: slava (26.09.2009)
Просмотров: 7608 | Рейтинг: 3.0/2
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]