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 + -
显示快捷键?