Класс SButton
Демонстрационная программа DemoSButton
DemoSButton
Класс SButton позволит вам снабдить программу кнопками, содержащими и картинки, и текст. Вы сможете установить для кнопки целый ряд различных стилей. Кроме того, класс SButton может самостоятельно построить по заданному цветному изображению чёрно-белое, которое будет использоваться, когда кнопка не в фокусе.
Класс написан с использованием библиотеки MFC и может использоваться только в MFC-проектах.
Чтобы воспользоваться классом SButton, в первую очередь необходимо включить в проект файлы SButton.cpp и SButton.h. Затем каждую кнопку, которую вы хотите наделить дополнительными возможностями, нужно связать с объектом класса SButton. Для этого есть два пути:
После того как объект класса SButton связан с кнопкой, вы можете вызывать его методы, чтобы настроить её внешний вид и поведение. Рассмотрим пример, иллюстрирующий все эти шаги (за более подробным примером обратитесь к демонстрационному проекту DemoSButton).
#include "SButton.h" class CDlg : public CDialog { SButton m_btnBegin; // Construction public: CDlg(CWnd* pParent = NULL); // standard constructor ... } ... BOOL CDlg::OnInitDialog() { CDialog::OnInitDialog(); ... m_btnBegin.SubclassWindow(GetDlgItem(IDC_BEGIN)->GetSafeHwnd()); // Далее можно вызов функций класса SButton // для настройки вида кнопки ... } |
В этом разделе приводится полный список методов класса SButton, которые вы можете использовать в вашей программе.
bool SetImages( DWORD dwResourceID, DWORD dwResourceID_BW=NULL, bool bHotImage=true, UINT uType=IMAGE_ICON); |
Связывает с кнопкой изображения.
ПРИМЕЧАНИЕ В случае toggle-button рекомендуется использовать icon`ки, так как bitmap`ы не имеют прозрачных областей, и поэтому в нажатом состоянии могут наблюдаться дефекты. |
Так как функция SetImages сильно перегружена (функционально), то приведём несколько способов её использования.
void SetStyleFlat(bool bFlat=true); |
Определяет, будет ли кнопка "плоской".
void SetStyleHotText(bool bHot=true); |
Определяет, будет ли текст кнопки менять цвет при наведении курсора мыши.
void ShowFocus(bool bShow=true); |
Определяет, будет ли фокус ввода показываться на кнопке в виде пунктирной рамочки.
void SetFrameWidth(int nWidth); |
Устанавливает толщину рамки кнопки.
Параметр nWidth может принимать одно из следующих значений: NO_FRAME - нет рамки, THIN_FRAME - тонкая рамка, THICK_FRAME - толстая рамка.
void SetImagePosition(int nImPos); |
Устанавливает позицию изображения относительно текста.
Параметр nImPos может принимать одно из следующих значений: IMGPOS_LEFT - слева от текста, IMGPOS_TOP - над текстом.
void SetStyleToggle(bool bToggle=true); |
Определяет, будет ли кнопка функционировать как toggle-button, т.е. находится в одном из двух состояний - нажата или отжата.
bool IsPushed(); |
Проверяет, нажата ли кнопка (если установлен стиль toggle-button).
void SetPushed(bool bPushed=true); |
Устанавливает кнопку в нажатое или отжатое состояние (если установлен стиль toggle-button).