windows-nt/Source/XPSP1/NT/shell/comctl32/v6/button.h
2020-09-26 16:20:57 +08:00

86 lines
1.8 KiB
C

#if !defined(__Button_h__INCLUDED)
#define __Button_h__INCLUDED
/////////////////////////////////////////////////////////////////////////////
//
// Button Control
//
/////////////////////////////////////////////////////////////////////////////
//
// Button states
//
#define BST_CHECKMASK 0x0003
#define BST_INCLICK 0x0010
#define BST_CAPTURED 0x0020
#define BST_MOUSE 0x0040
#define BST_DONTCLICK 0x0080
#define BST_INBMCLICK 0x0100
#define PBF_PUSHABLE 0x0001
#define PBF_DEFAULT 0x0002
//
// BNDrawText codes
//
#define DBT_TEXT 0x0001
#define DBT_FOCUS 0x0002
#define BS_PUSHBOX 0x0000000AL
#define BS_TYPEMASK 0x0000000FL
#define BS_IMAGEMASK 0x000000C0L
#define BS_HORZMASK 0x00000300L
#define BS_VERTMASK 0x00000C00L
#define BS_ALIGNMASK 0x00000F00L
//
// Button macros
//
#define ISBSTEXTOROD(ulStyle) \
(((ulStyle & BS_BITMAP) == 0) && ((ulStyle & BS_ICON) == 0))
#define BUTTONSTATE(pbutn) \
(pbutn->buttonState)
//
// Instance data pointer access functions
//
#define Button_GetPtr(hwnd) \
(PBUTN)GetWindowPtr(hwnd, 0)
#define Button_SetPtr(hwnd, p) \
(PBUTN)SetWindowPtr(hwnd, 0, p)
//
// Button data structure
//
typedef struct tagBUTN
{
CCONTROLINFO ci;
UINT buttonState; // Leave this a word for compatibility with SetWindowWord( 0L )
HANDLE hFont;
HANDLE hImage;
UINT fPaintKbdCuesOnly : 1;
RECT rcText;
RECT rcIcon;
HIMAGELIST himl;
UINT uAlign;
HTHEME hTheme; // Handle to the theme manager
PWW pww; // RO pointer into the pwnd to ExStyle, Style, State, State2
} BUTN, *PBUTN;
//
// Button WndProc Prototype
//
extern LRESULT Button_WndProc(
HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam);
#endif // __Button_h__INCLUDED