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

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

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

#include "StdAfx.h"
#include "Functions.h"
BOOL CFunctions::GetTransBack( HWND hWnd, HDC& hBackDC, CRect& rtBack)
{
	hBackDC = NULL;
	HWND hParentWnd = hWnd;
	do 
	{
		hBackDC = (HDC)::GetProp(hParentWnd, _T("BackDC"));
		if( hBackDC != NULL ) break;
		hParentWnd = ::GetParent(hParentWnd);
	} while (hParentWnd != NULL);

	if(hBackDC != NULL)
	{
		CRect rtWindow;
		CWnd::FromHandle(hWnd)->GetWindowRect(rtBack);
		CWnd::FromHandle(hParentWnd)->GetWindowRect(rtWindow);
		rtBack.OffsetRect( -rtWindow.left,-rtWindow.top );
		return TRUE;
	}
	return FALSE;
}

BOOL CFunctions::DrawTransBack(HWND hWnd, HDC hDC)
{
	HDC hBackDC = NULL;
	CRect rtBack = NULL;
	if(GetTransBack(hWnd, hBackDC, rtBack))
	{
		CRect rtPaint;
		GetClipBox(hDC, &rtPaint);
		BitBlt(hDC, rtPaint.left, rtPaint.top, rtPaint.Width(), rtPaint.Height(), hBackDC, rtBack.left+rtPaint.left, rtBack.top+rtPaint.top, SRCCOPY);
		return TRUE;
	}
	return FALSE;
}

BOOL CFunctions::SetTransBack( HWND hWnd, HDC hDC )
{
	return SetProp(hWnd, _T("BackDC"), HANDLE(hDC));
}