gusucode.com > 仿360最新界面的源码程序 > 仿360最新界面的源码程序/仿360新版特性窗口源码/部分源码/子页面示例代码/QChildPage/WndChildPage.cpp

    /************************************************************************
模快名:		仿360安全卫士界面
功能:		尚未对模块功能进行描述
完成日期:	2010-10-20
作者:		杨伟峰 Yang Weifeng(Email: 11259500@qq.com)

本代码可以自由使用,但因使用本代码造成的后果,本人不承担任何责任
************************************************************************/

#include "stdafx.h"
#include "WndChildPage.h"
#include "ExtensionWnd.h"

// 标准构造函数
CWndChildPage::CWndChildPage()
{
}

// 标准析构函数
CWndChildPage::~CWndChildPage()
{
}

BEGIN_MESSAGE_MAP(CWndChildPage, CWnd)
	ON_WM_ERASEBKGND()
END_MESSAGE_MAP()


// CWndChildPage 消息处理程序

// WM_ERASEBKGND消息处理函数
BOOL CWndChildPage::OnEraseBkgnd(CDC* pDC)
{
	// 使用UNICODE字符转换
	USES_CONVERSION;

	CRect rtClient;
	GetClientRect(rtClient);

	// 创建窗口绘制双缓存
	CDC dcMem;
	dcMem.CreateCompatibleDC(pDC);
	CBitmap btBitmap, *pOldBitmap;
	btBitmap.CreateCompatibleBitmap(pDC, rtClient.Width(), rtClient.Height());
	pOldBitmap = dcMem.SelectObject(&btBitmap);

	// 绘制窗口背景
	CFunctions::DrawTransBack(m_hWnd, dcMem);

	Gdiplus::Graphics graphics(dcMem.m_hDC);

	// 绘制窗口文字
	StringFormat stringFormat;
	stringFormat.SetFormatFlags( StringFormatFlagsNoWrap);

	LOGFONT lfFont ;
	memset(&lfFont, 0, sizeof(lfFont));
	lfFont.lfHeight = -15;
	lstrcpy(lfFont.lfFaceName, _T("宋体"));
	Font font(dcMem.GetSafeHdc(), &lfFont);

	CString sName = _T("本界面由动态库中导出。");
	CStringW wName = T2W(sName.GetBuffer());
	SolidBrush brush((ARGB)Color::Black);
	graphics.DrawString(wName, wName.GetLength(), &font, RectF(75, 200, 600, 20),&stringFormat, &brush);

	// 将双缓存DC内容绘制到当前窗口DC
	pDC->BitBlt(0, 0, rtClient.Width(), rtClient.Height(), &dcMem, 0, 0, SRCCOPY);
	dcMem.SelectObject(pOldBitmap);
	return TRUE;
}