clockppg.cpp

来自「深入浅出Visual C++入门进阶与应用实例 随书光盘 作者 何志丹」· C++ 代码 · 共 106 行

CPP
106
字号
// ClockPpg.cpp : Implementation of the CClockPropPage property page class.

#include "stdafx.h"
#include "clock.h"
#include "ClockPpg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif


IMPLEMENT_DYNCREATE(CClockPropPage, COlePropertyPage)


/////////////////////////////////////////////////////////////////////////////
// Message map

BEGIN_MESSAGE_MAP(CClockPropPage, COlePropertyPage)
	//{{AFX_MSG_MAP(CClockPropPage)
	ON_BN_CLICKED(IDC_SET_BKCOLOR, OnSetBkcolor)
	ON_WM_DRAWITEM()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()


/////////////////////////////////////////////////////////////////////////////
// Initialize class factory and guid

IMPLEMENT_OLECREATE_EX(CClockPropPage, "CLOCK.ClockPropPage.1",
	0x23517b87, 0x51ae, 0x4cb2, 0xb2, 0x85, 0xf0, 0x20, 0x3e, 0x3f, 0xa0, 0x5e)


/////////////////////////////////////////////////////////////////////////////
// CClockPropPage::CClockPropPageFactory::UpdateRegistry -
// Adds or removes system registry entries for CClockPropPage

BOOL CClockPropPage::CClockPropPageFactory::UpdateRegistry(BOOL bRegister)
{
	if (bRegister)
		return AfxOleRegisterPropertyPageClass(AfxGetInstanceHandle(),
			m_clsid, IDS_CLOCK_PPG);
	else
		return AfxOleUnregisterClass(m_clsid, NULL);
}


/////////////////////////////////////////////////////////////////////////////
// CClockPropPage::CClockPropPage - Constructor

CClockPropPage::CClockPropPage() :
	COlePropertyPage(IDD, IDS_CLOCK_PPG_CAPTION)
{
	//{{AFX_DATA_INIT(CClockPropPage)
	//}}AFX_DATA_INIT
}


/////////////////////////////////////////////////////////////////////////////
// CClockPropPage::DoDataExchange - Moves data between page and properties

void CClockPropPage::DoDataExchange(CDataExchange* pDX)
{
	//{{AFX_DATA_MAP(CClockPropPage)
	DDX_Control(pDX, IDC_BKCOLOR, m_BkColorEdit);
	DDP_Text(pDX, IDC_BKCOLOR, m_crBKColor, _T("crBKColor") );
	DDX_Text(pDX, IDC_BKCOLOR, m_crBKColor);
	//}}AFX_DATA_MAP
	DDP_PostProcessing(pDX);
}


/////////////////////////////////////////////////////////////////////////////
// CClockPropPage message handlers

void CClockPropPage::OnSetBkcolor() 
{
	CColorDialog dlg(NULL) ;
	if( IDOK == dlg.DoModal())
	{
		CString  strMess ;
		strMess.Format("%d",dlg.GetColor());
		m_BkColorEdit.SetWindowText(strMess) ;		
	}	
	
	//刷新对话框
	Invalidate();
	
	
}

void CClockPropPage::OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct) 
{
	if( IDC_SET_BKCOLOR == nIDCtl )
	{
		CDC dc ;
		dc.Attach(lpDrawItemStruct->hDC);
		dc.SetTextColor(m_crBKColor);
		dc.DrawText("点击设置背景色",&lpDrawItemStruct->rcItem,DT_CENTER|DT_VCENTER);
	}
	else
		COlePropertyPage::OnDrawItem(nIDCtl, lpDrawItemStruct);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?