www.pudn.com > WinGOS.rar > Button.h


#ifndef _GOS_BUTTON_H_ 
#define _GOS_BUTTON_H_ 
 
enum _tagButton 
{ 
	BS_PUSHBUTTON		=0x0000, 
	BS_CHECKBOX			=0x0001, 
	BS_RADIOBUTTON		=0x0002, 
	BS_OWNERDRAW		=0x0007, 
 
	BS_CHECKED			=0x0010, 
	BS_PUSHED			=0x0020, 
 
	BS_TEXT				=0x0000, 
	BS_ZOOMIN			=0x0100, 
	BS_ZOOMOUT			=0x0200, 
	BS_ZOOM				=0x0300, 
	BS_STRETCH			=0x0400, 
	BS_MULTILINE		=0x0100, 
	BS_WORDBREAK		=0x0300, 
	BS_UNDERLINE		=0x0400, 
	BS_LINKLIKE			=0x0800, 
	BS_PUSHLIKE			=0x0800, 
	BS_ICONLIKE			=0x0800, 
	BS_LEFTTEXT			=0x0800, 
	BS_LEFT				=0x1000, 
	BS_RIGHT			=0x2000, 
	BS_CENTER			=0x3000, 
	BS_TOP				=0x4000, 
	BS_BOTTOM			=0x8000, 
	BS_VCENTER			=0xC000, 
	BS_DTMASK			=0xf700, 
	 
	BS_BITMAP			=WS_OWNERDATA, 
	BS_ICON				=BS_BITMAP|BS_ICONLIKE, 
	BS_HYPERTEXT		=BS_UNDERLINE|BS_LINKLIKE, 
	BS_TYPEMASK			=0x000f, 
	BS_STATEMASK		=0x00f0|WS_FOCUSED, 
	BS_STYLEMASK		=0xff00, 
 
	BN_CLICKED			= 1, 
}; 
 
class CButton :public CWnd 
{ 
public: 
	virtual LRESULT MsgProc(UINT message, WPARAM wParam, LPARAM lParam); 
protected: 
	void OnPaint(CDC* pDC); 
	void OnEraseBkgnd(CDC* pDC); 
public: 
	void SetBitmap(CBitmap* pBitmap) 
		{ ASSERT(GetStyle()&BS_BITMAP); SetData(pBitmap); } 
	CBitmap* GetBitmap() 
		{ ASSERT(GetStyle()&BS_BITMAP); return (CBitmap*)GetData(); } 
	BOOL GetCheck(){return GetStyle()&BS_CHECKED;} 
	void SetCheck(BOOL bCheck); 
protected: 
	void DrawBitmap(CDC* pDC,LPCRECT pRect,CBitmap* pBitmap,DWORD nStyle); 
	void DrawLinkButton(CDC* pDC,LPCRECT pRect); 
	void DrawCheckBox(CDC* pDC,LPCRECT pRect); 
	void DrawButton(CDC* pDC,LPCRECT pRect); 
}; 
 
#endif //_GOS_BUTTON_H_