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