officexpmenuview.cpp
来自「c++系统开发实例精粹内附的80例源代码 环境:windows2000,c++」· C++ 代码 · 共 165 行
CPP
165 行
// OfficeXPMenuView.cpp : implementation of the COfficeXPMenuView class
//
#include "stdafx.h"
#include "OfficeXPMenu.h"
#include "OfficeXPMenuDoc.h"
#include "OfficeXPMenuView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// COfficeXPMenuView
IMPLEMENT_DYNCREATE(COfficeXPMenuView, CFormView)
BEGIN_MESSAGE_MAP(COfficeXPMenuView, CFormView)
//{{AFX_MSG_MAP(COfficeXPMenuView)
ON_WM_ERASEBKGND()
ON_WM_CTLCOLOR()
//}}AFX_MSG_MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CFormView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CFormView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CFormView::OnFilePrintPreview)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// COfficeXPMenuView construction/destruction
COfficeXPMenuView::COfficeXPMenuView()
: CFormView(COfficeXPMenuView::IDD)
{
//{{AFX_DATA_INIT(COfficeXPMenuView)
m_strText1 = _T("控件颜色设置");
m_strText2 = _T("控件颜色设置");
//}}AFX_DATA_INIT
// TODO: add construction code here
}
COfficeXPMenuView::~COfficeXPMenuView()
{
}
void COfficeXPMenuView::DoDataExchange(CDataExchange* pDX)
{
CFormView::DoDataExchange(pDX);
//{{AFX_DATA_MAP(COfficeXPMenuView)
DDX_Text(pDX, IDC_EDIT_TEXT1, m_strText1);
DDX_Text(pDX, IDC_EDIT_TEXT2, m_strText2);
//}}AFX_DATA_MAP
}
BOOL COfficeXPMenuView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
return CFormView::PreCreateWindow(cs);
}
void COfficeXPMenuView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
GetParentFrame()->RecalcLayout();
ResizeParentToFit();
}
/////////////////////////////////////////////////////////////////////////////
// COfficeXPMenuView printing
BOOL COfficeXPMenuView::OnPreparePrinting(CPrintInfo* pInfo)
{
// default preparation
return DoPreparePrinting(pInfo);
}
void COfficeXPMenuView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add extra initialization before printing
}
void COfficeXPMenuView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add cleanup after printing
}
void COfficeXPMenuView::OnPrint(CDC* pDC, CPrintInfo* /*pInfo*/)
{
// TODO: add customized printing code here
}
/////////////////////////////////////////////////////////////////////////////
// COfficeXPMenuView diagnostics
#ifdef _DEBUG
void COfficeXPMenuView::AssertValid() const
{
CFormView::AssertValid();
}
void COfficeXPMenuView::Dump(CDumpContext& dc) const
{
CFormView::Dump(dc);
}
COfficeXPMenuDoc* COfficeXPMenuView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(COfficeXPMenuDoc)));
return (COfficeXPMenuDoc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// COfficeXPMenuView message handlers
BOOL COfficeXPMenuView::OnEraseBkgnd(CDC* pDC)
{
// TODO: Add your message handler code here and/or call default
// 本函数负责将COfficeXPMenuView对应的IDD_OfficeXPMenu_FORM的背景色设为白色,默认色为灰色
// 创建白色画刷
CBrush brush(RGB(255,255,255));
CBrush* pOldBrush;
// 选中新画刷,并返回原有画刷给pOldBrush
pOldBrush=pDC->SelectObject(&brush);
// 得到要擦除并重绘的区域
CRect rcClip;
pDC->GetClipBox(&rcClip);
// 重绘此区域
pDC->PatBlt(rcClip.left,rcClip.top,rcClip.Width(),rcClip.Height(),PATCOPY);
// 选中pOldBrush,恢复原有画刷
if(pOldBrush)
pDC->SelectObject(pOldBrush);
// Return nonzero to half fruther processing .
return TRUE;
// VC自动生成的代码,读者可以做个比较
//return CFormView::OnEraseBkgnd(pDC);
}
HBRUSH COfficeXPMenuView::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CFormView::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Change any attributes of the DC here
if (pWnd->GetDlgCtrlID() == IDC_EDIT_TEXT1)
{
// 设置IDC_EDIT_TEXT1中文本为蓝色
pDC->SetTextColor(RGB(0, 0, 255));
// 设置IDC_EDIT_TEXT1中文本背景色为青色
pDC->SetBkColor(RGB(0,255,255));
// 设置文本背景色为透明模式
pDC->SetBkMode(TRANSPARENT);
// 设置IDC_EDIT_TEXT1颜色为白色
CBrush brush(0x00FFFFFF);
// 返回画刷,IDC_EDIT_TEXT1中的颜色将按上述指定的颜色绘制
hbr = brush;
}
if (pWnd->GetDlgCtrlID() == IDC_EDIT_TEXT2)
{
// 设置IDC_EDIT_TEXT2文本色为红色
pDC->SetTextColor(RGB(255, 0, 0));
// 设置IDC_EDIT_TEXT2中文本背景色为黄色
pDC->SetBkColor(RGB(255,255,0));
// 设置IDC_EDIT_TEXT2颜色为绿色
CBrush brush(0x0000FF00);
//返回画刷,IDC_EDIT_TEXT2中的颜色将按上述指定的颜色绘制
hbr = brush;
}
// TODO: Return a different brush if the default is not desired
return hbr;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?