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