📄 buttonpage.cpp
字号:
// ButtonPage.cpp : implementation file
//
#include "stdafx.h"
#include "Controls.h"
#include "ButtonPage.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CButtonPage property page
IMPLEMENT_DYNCREATE(CButtonPage, CPropertyPage)
CButtonPage::CButtonPage() : CPropertyPage(CButtonPage::IDD)
{
//{{AFX_DATA_INIT(CButtonPage)
m_nRadioButton = 0;
m_nRadioTool = 0;
m_bFlat = FALSE;
m_bIcon = FALSE;
m_bMultiline = FALSE;
m_bBitmap = FALSE;
m_bCheckBoxButton = FALSE;
m_bText = TRUE;
m_bEnable = TRUE;
m_bGroupBitmap = FALSE;
m_bGroupFlat = FALSE;
m_bGroupIcon = FALSE;
m_bGroupText = TRUE;
m_CheckState = 0;
m_bButtonCheckStyle = FALSE;
m_bButtonRadioStyle = FALSE;
m_bButtonPushStyle = FALSE;
//}}AFX_DATA_INIT
m_psp.dwFlags &= ~PSP_HASHELP;
}
CButtonPage::~CButtonPage()
{
m_psp.dwFlags &= ~PSP_HASHELP;
}
void CButtonPage::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CButtonPage)
DDX_Control(pDX, IDC_BUTTONUNCHECK, m_UncheckButton);
DDX_Control(pDX, IDC_CHECKSAMPLE, m_CheckSample);
DDX_Control(pDX, IDC_GROUPSAMPLE, m_GroupSample);
DDX_Control(pDX, IDC_STYLEBUTTON, m_StyleButton);
DDX_Control(pDX, IDC_BUTTONBUTTONLED, m_ButtonButtonLed);
DDX_Control(pDX, IDC_CHECKBUTTONLED, m_CheckBoxLed);
DDX_Control(pDX, IDC_RADIOTOOLLED3, m_RadioLedRed);
DDX_Control(pDX, IDC_RADIOTOOLLED2, m_RadioLedYellow);
DDX_Control(pDX, IDC_RADIOTOOLLED1, m_RadioLedGreen);
DDX_Radio(pDX, IDC_RADIOBUTTON1, m_nRadioButton);
DDX_Radio(pDX, IDC_RADIOTOOL1, m_nRadioTool);
DDX_Check(pDX, IDC_BUTTONFLAT, m_bFlat);
DDX_Check(pDX, IDC_BUTTONICON, m_bIcon);
DDX_Check(pDX, IDC_BUTTONMULTILINE, m_bMultiline);
DDX_Check(pDX, IDC_BUTTONBITMAP, m_bBitmap);
DDX_Check(pDX, IDC_CHECKBOXBUTTON, m_bCheckBoxButton);
DDX_Check(pDX, IDC_BUTTONTEXT, m_bText);
DDX_Check(pDX, IDC_BUTTONENABLE, m_bEnable);
DDX_Check(pDX, IDC_GROUPBITMAP, m_bGroupBitmap);
DDX_Check(pDX, IDC_GROUPFLAT, m_bGroupFlat);
DDX_Check(pDX, IDC_GROUPICON, m_bGroupIcon);
DDX_Check(pDX, IDC_GROUPTEXT, m_bGroupText);
DDX_Radio(pDX, IDC_UNCHECKEDRADIO, m_CheckState);
DDX_Check(pDX, IDC_BUTTONCHECKSTYLE, m_bButtonCheckStyle);
DDX_Check(pDX, IDC_BUTTONRADIOSTYLE, m_bButtonRadioStyle);
DDX_Check(pDX, IDC_BUTTONPUSHSTYLE, m_bButtonPushStyle);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CButtonPage, CPropertyPage)
//{{AFX_MSG_MAP(CButtonPage)
ON_BN_CLICKED(IDC_RADIOTOOL1, OnRadiotool)
ON_BN_CLICKED(IDC_RADIOBUTTON1, OnRadioButton)
ON_BN_CLICKED(IDC_BUTTONBUTTON, OnButtonbutton)
ON_BN_CLICKED(IDC_CHECKBOXBUTTON, OnCheckboxbutton)
ON_BN_CLICKED(IDC_BUTTONFLAT, OnButtonflat)
ON_BN_CLICKED(IDC_BUTTONICON, OnButtonicon)
ON_BN_CLICKED(IDC_BUTTONMULTILINE, OnButtonmultiline)
ON_BN_CLICKED(IDC_BUTTONBITMAP, OnButtonbitmap)
ON_BN_CLICKED(IDC_BUTTONTEXT, OnButtontext)
ON_BN_CLICKED(IDC_BUTTONENABLE, OnButtonenable)
ON_BN_CLICKED(IDC_GROUPICON, OnGroupicon)
ON_BN_CLICKED(IDC_GROUPBITMAP, OnGroupbitmap)
ON_BN_CLICKED(IDC_GROUPFLAT, OnGroupflat)
ON_BN_CLICKED(IDC_GROUPTEXT, OnGrouptext)
ON_BN_CLICKED(IDC_UNCHECKEDRADIO, OnUncheckedradio)
ON_BN_CLICKED(IDC_CHECKRADIO, OnCheckradio)
ON_BN_CLICKED(IDC_INDETERMRADIO, OnIndetermradio)
ON_BN_CLICKED(IDC_CHECKSAMPLE, OnChecksample)
ON_BN_CLICKED(IDC_BUTTONRADIOSTYLE, OnButtonradiostyle)
ON_BN_CLICKED(IDC_BUTTONCHECKSTYLE, OnButtoncheckstyle)
ON_BN_CLICKED(IDC_RADIOTOOL2, OnRadiotool)
ON_BN_CLICKED(IDC_RADIOTOOL3, OnRadiotool)
ON_BN_CLICKED(IDC_RADIOBUTTON2, OnRadioButton)
ON_BN_CLICKED(IDC_RADIOBUTTON3, OnRadioButton)
ON_BN_CLICKED(IDC_BUTTONPUSHSTYLE, OnButtonpushstyle)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CButtonPage message handlers
BOOL CButtonPage::OnInitDialog()
{
CPropertyPage::OnInitDialog();
m_bmpRedOn.LoadBitmap (IDB_LEDREDON);
m_bmpRedOff.LoadBitmap (IDB_LEDREDOFF);
m_bmpGreenOn.LoadBitmap (IDB_LEDGREENON);
m_bmpGreenOff.LoadBitmap (IDB_LEDGREENOFF);
m_bmpYellowOn.LoadBitmap (IDB_LEDYELLOWON);
m_bmpYellowOff.LoadBitmap (IDB_LEDYELLOWOFF);
m_bmpDudleyPC.LoadBitmap (IDB_DUDLEYPC);
m_ButtonButtonLed.SetBitmap (m_bmpGreenOn);
m_CheckBoxLed.SetBitmap (m_bmpRedOff);
m_icoMainframeSmall = (HICON) LoadImage (AfxGetInstanceHandle(),
MAKEINTRESOURCE (IDR_MAINFRAME),
IMAGE_ICON,
16, 16, 0);
m_icoMainframeLarge = (HICON) LoadImage (AfxGetInstanceHandle(),
MAKEINTRESOURCE (IDR_MAINFRAME),
IMAGE_ICON,
32, 32, 0);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CButtonPage::OnRadiotool()
{
UpdateData (TRUE);
switch (m_nRadioTool)
{
case 0:
m_RadioLedRed.SetBitmap (m_bmpRedOff);
m_RadioLedGreen.SetBitmap (m_bmpGreenOn);
m_RadioLedYellow.SetBitmap (m_bmpYellowOff);
break;
case 1:
m_RadioLedRed.SetBitmap (m_bmpRedOff);
m_RadioLedYellow.SetBitmap (m_bmpYellowOn);
m_RadioLedGreen.SetBitmap (m_bmpGreenOff);
break;
case 2:
m_RadioLedRed.SetBitmap (m_bmpRedOn);
m_RadioLedYellow.SetBitmap (m_bmpYellowOff);
m_RadioLedGreen.SetBitmap (m_bmpGreenOff);
break;
default:
return;
}
m_nRadioButton = m_nRadioTool;
UpdateData (FALSE);
}
void CButtonPage::OnRadioButton()
{
UpdateData (TRUE);
m_nRadioTool = m_nRadioButton;
UpdateData (FALSE);
OnRadiotool ();
}
void CButtonPage::OnButtonbutton()
{
static int nPress = 0;
++nPress;
if (nPress > 2)
nPress = 0;
switch (nPress)
{
case 0:
m_ButtonButtonLed.SetBitmap (m_bmpGreenOn);
break;
case 1:
m_ButtonButtonLed.SetBitmap (m_bmpYellowOn);
break;
case 2:
m_ButtonButtonLed.SetBitmap (m_bmpRedOn);
break;
default:
break;
}
}
void CButtonPage::OnCheckboxbutton()
{
UpdateData (TRUE);
if (m_bCheckBoxButton)
m_CheckBoxLed.SetBitmap (m_bmpRedOn);
else
m_CheckBoxLed.SetBitmap (m_bmpRedOff);
}
void CButtonPage::OnButtonflat()
{
UpdateData (TRUE);
if (m_bFlat)
m_StyleButton.ModifyStyle (0, BS_FLAT, TRUE);
else
m_StyleButton.ModifyStyle (BS_FLAT, 0, TRUE);
m_StyleButton.Invalidate ();
}
void CButtonPage::OnButtonicon()
{
UpdateData (TRUE);
if (m_bIcon)
{
m_bBitmap = FALSE;
m_bText = FALSE;
m_StyleButton.ModifyStyle (BS_BITMAP, BS_ICON, TRUE);
m_StyleButton.SetIcon (m_icoMainframeLarge);
m_StyleButton.SetWindowText (_T("Button"));
}
else
{
m_bIcon = FALSE;
m_bBitmap = FALSE;
m_bText = TRUE;
m_StyleButton.ModifyStyle (BS_ICON, 0, TRUE);
if (m_bMultiline)
m_StyleButton.SetWindowText (_T("Button Button"));
else
m_StyleButton.SetWindowText (_T("Button"));
m_StyleButton.SetIcon (NULL);
}
UpdateData (FALSE);
}
void CButtonPage::OnButtonbitmap()
{
UpdateData (TRUE);
if (m_bBitmap)
{
m_bIcon = FALSE;
m_bText = FALSE;
m_StyleButton.ModifyStyle (BS_ICON, BS_BITMAP, TRUE);
m_StyleButton.SetWindowText (_T("Button"));
m_StyleButton.SetBitmap (m_bmpDudleyPC);
}
else
{
m_bIcon = FALSE;
m_bBitmap = FALSE;
m_bText = TRUE;
m_StyleButton.ModifyStyle (BS_BITMAP, 0, TRUE);
if (m_bMultiline)
m_StyleButton.SetWindowText (_T("Button Button"));
else
m_StyleButton.SetWindowText (_T("Button"));
m_StyleButton.SetBitmap (NULL);
}
UpdateData (FALSE);
}
void CButtonPage::OnButtontext()
{
UpdateData (TRUE);
if (m_bText)
{
m_bIcon = FALSE;
m_bBitmap = FALSE;
m_StyleButton.ModifyStyle (BS_ICON | BS_BITMAP, 0, TRUE);
if (m_bMultiline)
m_StyleButton.SetWindowText (_T("Button Button"));
else
m_StyleButton.SetWindowText (_T("Button"));
}
else
{
if (m_bIcon | m_bBitmap)
{
m_bText = FALSE;
}
else
{
m_bText = TRUE;
if (m_bMultiline)
m_StyleButton.SetWindowText (_T("Button Button"));
else
m_StyleButton.SetWindowText (_T("Button"));
}
}
UpdateData (FALSE);
}
void CButtonPage::OnButtonmultiline()
{
UpdateData (TRUE);
if (m_bMultiline)
{
m_StyleButton.ModifyStyle (0, BS_MULTILINE, TRUE);
m_StyleButton.SetWindowText (_T("Button Button"));
}
else
{
m_StyleButton.ModifyStyle (BS_MULTILINE, 0, TRUE);
m_StyleButton.SetWindowText (_T("Button"));
}
}
void CButtonPage::OnButtonenable()
{
UpdateData (TRUE);
if (m_bEnable)
m_StyleButton.EnableWindow (TRUE);
else
m_StyleButton.EnableWindow (FALSE);
}
void CButtonPage::OnGroupicon()
{
UpdateData (TRUE);
if (m_bGroupIcon)
{
m_bGroupBitmap = FALSE;
m_bGroupText = FALSE;
m_GroupSample.ModifyStyle (BS_BITMAP, BS_ICON, TRUE);
m_GroupSample.SetIcon (m_icoMainframeSmall);
}
else
{
m_GroupSample.ModifyStyle (BS_BITMAP, 0, TRUE);
}
UpdateData (FALSE);
}
void CButtonPage::OnGroupbitmap()
{
UpdateData (TRUE);
if (m_bGroupBitmap)
{
m_bGroupIcon = FALSE;
m_bGroupText = FALSE;
m_GroupSample.ModifyStyle (BS_ICON, BS_BITMAP, TRUE);
m_GroupSample.SetBitmap (m_bmpGreenOn);
}
else
{
m_GroupSample.ModifyStyle (BS_ICON, 0, TRUE);
}
UpdateData (FALSE);
}
void CButtonPage::OnGrouptext()
{
UpdateData (TRUE);
if (m_bGroupText)
{
m_bGroupIcon = FALSE;
m_bGroupBitmap = FALSE;
m_GroupSample.ModifyStyle (BS_ICON | BS_BITMAP, 0, TRUE);
m_GroupSample.SetWindowText (_T("Group Box"));
}
else
{
m_GroupSample.ModifyStyle (BS_ICON, 0, TRUE);
}
UpdateData (FALSE);
}
void CButtonPage::OnGroupflat()
{
UpdateData (TRUE);
if (m_bGroupFlat)
m_GroupSample.ModifyStyle (0, BS_FLAT, TRUE);
else
m_GroupSample.ModifyStyle (BS_FLAT, 0, TRUE);
m_GroupSample.Invalidate ();
}
void CButtonPage::OnUncheckedradio()
{
m_CheckSample.SetCheck (0);
}
void CButtonPage::OnCheckradio()
{
m_CheckSample.SetCheck (1);
}
void CButtonPage::OnIndetermradio()
{
m_CheckSample.SetCheck (2);
}
void CButtonPage::OnChecksample()
{
UpdateData (TRUE);
m_CheckState = m_CheckSample.GetCheck ();
UpdateData (FALSE);
}
//
// New message handlers for the sample style button
// implementing radio and check box styles.
//
void CButtonPage::OnButtonradiostyle()
{
UpdateData (TRUE);
if (m_bButtonRadioStyle)
{
m_StyleButton.ModifyStyle (BS_AUTOCHECKBOX, BS_AUTORADIOBUTTON, TRUE);
m_bButtonCheckStyle = FALSE;
m_UncheckButton.ShowWindow (SW_SHOWNORMAL);
}
else
{
m_StyleButton.ModifyStyle (BS_AUTORADIOBUTTON, 0, TRUE);
m_UncheckButton.ShowWindow (SW_HIDE);
}
UpdateData (FALSE);
m_StyleButton.Invalidate ();
}
void CButtonPage::OnButtoncheckstyle()
{
UpdateData (TRUE);
if (m_bButtonCheckStyle)
{
m_StyleButton.ModifyStyle (BS_AUTORADIOBUTTON, BS_AUTOCHECKBOX, TRUE);
m_bButtonRadioStyle = FALSE;
m_UncheckButton.ShowWindow (SW_HIDE);
}
else
m_StyleButton.ModifyStyle (BS_AUTOCHECKBOX, 0, TRUE);
UpdateData (FALSE);
m_StyleButton.Invalidate ();
}
void CButtonPage::OnButtonpushstyle()
{
UpdateData (TRUE);
if (m_bButtonPushStyle)
m_StyleButton.ModifyStyle (0, BS_PUSHLIKE, TRUE);
else
m_StyleButton.ModifyStyle (BS_PUSHLIKE, 0, TRUE);
m_StyleButton.Invalidate ();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -