⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 buttonpage.cpp

📁 VC源代码大全(精华版)
💻 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 + -