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


// SkinDrawItem.h 
 
#ifndef _SKINDRAWITEM_ONCE_ 
#define _SKINDRAWITEM_ONCE_ 
 
#include "Controls\SkinButton.h" 
#include "Controls\SkinBRadio.h" 
#include "Controls\SkinCheckBox.h" 
#include "Controls\SkinGroupBox.h" 
 
#define ODT_TAB                 101 
#define ODT_LISTVIEW            102 
 
class SkinDrawItem 
{ 
public: 
	SkinDrawItem() 
	{ 
	} 
	static LRESULT WNDDrawItem(UINT idCtrl,LPDRAWITEMSTRUCT lpdis) 
	{ 
		//return TransButton(idCtrl,lpdis); 
		switch(lpdis->CtlType) 
		{ 
			case ODT_BUTTON: 
				return TransButton(idCtrl,lpdis); 
			case ODT_TAB: 
			case ODT_LISTBOX: 
			case ODT_MENU: 
			default: 
				return 0; 
				/* 
				*	 
				ODT_BUTTON   Owner-drawn button 
				ODT_COMBOBOX   Owner-drawn combo box 
				ODT_LISTBOX   Owner-drawn list box 
				ODT_MENU   Owner-drawn menu 
				ODT_LISTVIEW   List view control 
				ODT_STATIC   Owner-drawn static control  
				ODT_TAB   Tab control 
				 */ 
		} 
	} 
 
	static LRESULT TransButton(UINT idCtrl,LPDRAWITEMSTRUCT lpdis) 
	{ 
		DWORD dwStyle = SkinWndState::GetWndStyle(lpdis->hwndItem); 
 
		if((dwStyle & BS_GROUPBOX) == BS_GROUPBOX) 
		{ 
			return SkinGroupBox::DrawCtrlItem(idCtrl,lpdis); 
		} 
		else if((dwStyle & BS_AUTOCHECKBOX) == BS_AUTOCHECKBOX || 
			(dwStyle & BS_CHECKBOX) == BS_CHECKBOX) 
		{ 
			return SkinCheckBox::DrawCtrlItem(idCtrl,lpdis); 
		} 
		else if((dwStyle & BS_AUTORADIOBUTTON) == BS_AUTORADIOBUTTON || 
			(dwStyle & BS_RADIOBUTTON) == BS_RADIOBUTTON) 
		{ 
			return SkinBRadio::DrawCtrlItem(idCtrl,lpdis); 
		}		 
		else 
		{ 
			SkinButton btn; 
			return btn.DrawCtrlItem(idCtrl,lpdis); 
		} 
		return 0; 
	} 
}; 
 
#endif