Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// MBUTTON.H
//
// Defines CMButton class; helper functions
//
// Copyright (c) Microsoft Corporation 1997
//
// 12/14/97 David Stewart / dstewart
//
///////////////////////////////////////////////////////////////////////////////////////////////////////////
#ifndef _MBUTTON_HEADER_
#define _MBUTTON_HEADER_
#include "windows.h"
#ifdef __cplusplus
extern "C" { #endif
//extended multimedia button styles
#define MBS_STANDARDLEFT 0x00000000L
#define MBS_TOGGLELEFT 0x00000001L
#define MBS_STANDARDRIGHT 0x00000002L
#define MBS_DROPRIGHT 0x00000004L
#define MBS_TOGGLERIGHT 0x00000008L
#define MBS_SYSTEMTYPE 0x00000010L
#define MBS_NOAUTODELETE 0x00000020L
#define STANDARD_PIXELS_PER_INCH 96
#define IS_DBCS_CHARSET( CharSet ) \
( ((CharSet) == SHIFTJIS_CHARSET) ? TRUE : \ ((CharSet) == HANGEUL_CHARSET) ? TRUE : \ ((CharSet) == CHINESEBIG5_CHARSET) ? TRUE : \ ((CharSet) == GB2312_CHARSET) ? TRUE : \ ((CharSet) == JOHAB_CHARSET) ? TRUE : FALSE \ )
//forward declaration of class
class CMButton;
//c-style helper functions
BOOL InitMButtons(HINSTANCE hInst, HWND hwnd); void UninitMButtons();
CMButton* GetMButtonFromID(HWND hwndParent, int nID); CMButton* GetMButtonFromHWND(HWND hwnd);
class CMButton { public: friend CMButton* CreateMButton(TCHAR* szCaption, int nIconID, DWORD dwWindowStyle, DWORD dwMButtonStyle, int x, int y, int width, int height, HWND hwndParentOrSub, BOOL fSubExisting, int nID, int nToolTipID, HINSTANCE hInst);
CMButton(); //constructor
~CMButton(); //destructor
HWND GetHWND() {return m_hwnd;} int GetID() {return m_nID;} int GetToolTipID() {return m_nToolTipID;} void SetToolTipID(int nID) {m_nToolTipID = nID;} void SetText(TCHAR* szCaption); void SetIcon(int nIconID); void SetFont(HFONT hFont); void Draw(LPDRAWITEMSTRUCT lpdis); void PreDrawUpstate(int width, int height); BOOL MouseInButton() {return m_fMouseInButton;} BOOL GetMenuingState() {return m_fMenu;} void SetMenuingState(BOOL fMenuOn);
private: //non-static privates
HFONT m_hFont; int m_nID; int m_nToolTipID; HWND m_hwnd; BOOL m_fMouseInButton; DWORD m_dwStyle; WNDPROC m_fnOldButton; BOOL m_fRedraw; HINSTANCE m_hInst; int m_IconID; BOOL m_fMenu; BOOL m_fMenuingOff; int m_LastState;
HANDLE m_hbmpUp; HANDLE m_hbmpDn; HANDLE m_hbmpHi; void DrawButtonBitmap(LPDRAWITEMSTRUCT lpdis, BOOL fDrawToScreen, RECT* pMidRect);
private: //static stuff for all buttons
static LRESULT CALLBACK ButtonProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam); };
#ifdef __cplusplus
}; #endif
#endif //_MBUTTON_HEADER_
|