📄 mypropertysheet.cpp
字号:
// MyPropertySheet.cpp : implementation file
//
#include "stdafx.h"
#include "MyPropertySheet.h"
#include "Chapter09.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CMyPropertySheet
IMPLEMENT_DYNAMIC(CMyPropertySheet, CPropertySheet)
CMyPropertySheet::CMyPropertySheet(UINT nIDCaption, CWnd* pParentWnd, UINT iSelectPage)
:CPropertySheet(nIDCaption, pParentWnd, iSelectPage)
{
}
CMyPropertySheet::CMyPropertySheet(LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage)
:CPropertySheet(pszCaption, pParentWnd, iSelectPage)
{
}
CMyPropertySheet::~CMyPropertySheet()
{
}
BEGIN_MESSAGE_MAP(CMyPropertySheet, CPropertySheet)
//{{AFX_MSG_MAP(CMyPropertySheet)
ON_WM_PAINT()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
//
void CMyPropertySheet::SetText(CString strText)
{
m_Text = strText;
}
void CMyPropertySheet::SetFont(CString strName, int nHeight/* = 12*/,
int nWeight/* = FW_BOLD*/, BYTE bItalic/* = TRUE*/,
BYTE bUnderline/* =FALSE*/)
{
if(m_font.m_hObject)
m_font.Detach();
//创建指定的字体
m_font.CreateFont(nHeight, 0, 0, 0, nWeight, \
bItalic, bUnderline,0,0,0,0,0,0, strName);
}
/////////////////////////////////////////////////////////////////////////////
// CMyPropertySheet message handlers
void CMyPropertySheet::OnPaint()
{
CPaintDC dc(this); // device context for painting
if(m_Text.IsEmpty())
return;
//设定字显示的位置
CRect rectTabCtrl;
GetTabControl()->GetWindowRect(rectTabCtrl);
ScreenToClient(rectTabCtrl);
CRect rectOk;
GetDlgItem(IDOK)->GetWindowRect(rectOk);
ScreenToClient(rectOk);
//设置背景模式
dc.SetBkMode(TRANSPARENT);
CRect rectText;
rectText.left = rectTabCtrl.left;
rectText.top = rectOk.top;
rectText.bottom = rectOk.bottom;
rectText.right = rectOk.left;
CFont * OldFont = dc.SelectObject(&m_font);
//设置文本颜色
COLORREF OldColor = dc.SetTextColor( ::GetSysColor(COLOR_3DFACE));
//在设备上下文中写字
dc.DrawText( m_Text, rectText + CPoint(1,1), DT_SINGLELINE | DT_LEFT | DT_VCENTER);
dc.SetTextColor( ::GetSysColor(COLOR_3DSHADOW));
dc.DrawText( m_Text, rectText, DT_SINGLELINE | DT_LEFT | DT_VCENTER);
//恢复旧的文本颜色
dc.SetTextColor( OldColor);
//恢复旧的字体
dc.SelectObject(OldFont);
}
BOOL CMyPropertySheet::OnInitDialog()
{
BOOL bResult = CPropertySheet::OnInitDialog();
SetFont("幼圆");
return bResult;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -