www.pudn.com > SDKSkin.rar > SkinToolBar32.h


/**************************************************** 
**  Fujitsu Copyright (C) 2006 - 2007 
**	功    能:	工具条处理。 
 
**	文件名称: 	SkinToolBar32.h 
**	文件基类: 
**	扩 展 名:	h 
**	创建日期:	2006-8-21 17:27 
**	作    者:	汪荣 
*****************************************************/ 
 
#ifndef _SKINTOOLBAR_ONCE_ 
#define _SKINTOOLBAR_ONCE_ 
 
#include "../RNHBitmap.h" 
#include "../RNHDC.h" 
 
class SkinToolBar32 
{ 
public: 
	SkinToolBar32() 
	{ 
	} 
	LRESULT CALLBACK SkinToolbarProc(SKINMSG &skMsg) 
	{ 
		switch(skMsg._msg) 
		{ 
			case WM_MOUSEMOVE: 
				break; 
			case WM_ERASEBKGND: 
				return EraseBackGround(skMsg); 
				break; 
		} 
		return SkinResList::CallDefWndProc(skMsg); 
	} 
	LRESULT EraseBackGround(SKINMSG &skMsg) 
	{ 
		RECT rcWnd; 
		GetClientRect(skMsg._hWnd,&rcWnd); 
		HDC hDC = GetDC(skMsg._hWnd); 
		DWORD dStyle = GetWindowLong(skMsg._hWnd,GWL_STYLE); 
		SetWindowLong(skMsg._hWnd,GWL_STYLE,dStyle | WS_CLIPCHILDREN); 
		 
		RNHDC memDc(CreateCompatibleDC(hDC)); 
		RNHBitmap memBmp(CreateCompatibleBitmap(hDC,rcWnd.right-rcWnd.left, 
			rcWnd.bottom-rcWnd.top)); 
		HBITMAP pOldMemBmp = (HBITMAP)SelectObject(memDc,memBmp); 
		RNHBitmap hbitmap(SkinIni::Instance()->GetEraseBGImg()); 
		SkinDraw::Draw(memDc,hbitmap,rcWnd); 
		SkinDraw::Draw(RNHDC(hDC,false),memDc,rcWnd); 
		SkinWndState::InvalidRect(skMsg._hWnd); 
		return 0;// 
	} 
}; 
 
#endif