📄 commctrl.h
字号:
// is a pointer to a string, it will be handled as a string like listview
// (although LPSTR_TEXTCALLBACK is not supported).
#ifdef UNICODE
#define TB_INSERTBUTTON TB_INSERTBUTTONW
#define TB_ADDBUTTONS TB_ADDBUTTONSW
#else
#define TB_INSERTBUTTON TB_INSERTBUTTONA
#define TB_ADDBUTTONS TB_ADDBUTTONSA
#endif
#define TB_SETDRAWTEXTFLAGS (WM_USER + 70) // wParam == mask lParam == bit values
#endif // _WIN32_IE >= 0x0400
#if (_WIN32_IE >= 0x0500)
#define TB_GETSTRINGW (WM_USER + 91)
#define TB_GETSTRINGA (WM_USER + 92)
#ifdef UNICODE
#define TB_GETSTRING TB_GETSTRINGW
#else
#define TB_GETSTRING TB_GETSTRINGA
#endif
#endif // _WIN32_IE >= 0x0500
#if (_WIN32_WINNT >= 0x501)
#define TBMF_PAD 0x00000001
#define TBMF_BARPAD 0x00000002
#define TBMF_BUTTONSPACING 0x00000004
typedef struct {
UINT cbSize;
DWORD dwMask;
int cxPad; // PAD
int cyPad;
int cxBarPad; // BARPAD
int cyBarPad;
int cxButtonSpacing; // BUTTONSPACING
int cyButtonSpacing;
} TBMETRICS, * LPTBMETRICS;
#define TB_GETMETRICS (WM_USER + 101)
#define TB_SETMETRICS (WM_USER + 102)
#endif
#if (_WIN32_WINNT >= 0x501)
#define TB_SETWINDOWTHEME CCM_SETWINDOWTHEME
#endif
#define TBN_GETBUTTONINFOA (TBN_FIRST-0)
#define TBN_BEGINDRAG (TBN_FIRST-1)
#define TBN_ENDDRAG (TBN_FIRST-2)
#define TBN_BEGINADJUST (TBN_FIRST-3)
#define TBN_ENDADJUST (TBN_FIRST-4)
#define TBN_RESET (TBN_FIRST-5)
#define TBN_QUERYINSERT (TBN_FIRST-6)
#define TBN_QUERYDELETE (TBN_FIRST-7)
#define TBN_TOOLBARCHANGE (TBN_FIRST-8)
#define TBN_CUSTHELP (TBN_FIRST-9)
#if (_WIN32_IE >= 0x0300)
#define TBN_DROPDOWN (TBN_FIRST - 10)
#endif
#if (_WIN32_IE >= 0x0400)
#define TBN_GETOBJECT (TBN_FIRST - 12)
// Structure for TBN_HOTITEMCHANGE notification
//
typedef struct tagNMTBHOTITEM
{
NMHDR hdr;
int idOld;
int idNew;
DWORD dwFlags; // HICF_*
} NMTBHOTITEM, * LPNMTBHOTITEM;
// Hot item change flags
#define HICF_OTHER 0x00000000
#define HICF_MOUSE 0x00000001 // Triggered by mouse
#define HICF_ARROWKEYS 0x00000002 // Triggered by arrow keys
#define HICF_ACCELERATOR 0x00000004 // Triggered by accelerator
#define HICF_DUPACCEL 0x00000008 // This accelerator is not unique
#define HICF_ENTERING 0x00000010 // idOld is invalid
#define HICF_LEAVING 0x00000020 // idNew is invalid
#define HICF_RESELECT 0x00000040 // hot item reselected
#define HICF_LMOUSE 0x00000080 // left mouse button selected
#define HICF_TOGGLEDROPDOWN 0x00000100 // Toggle button's dropdown state
#define TBN_HOTITEMCHANGE (TBN_FIRST - 13)
#define TBN_DRAGOUT (TBN_FIRST - 14) // this is sent when the user clicks down on a button then drags off the button
#define TBN_DELETINGBUTTON (TBN_FIRST - 15) // uses TBNOTIFY
#define TBN_GETDISPINFOA (TBN_FIRST - 16) // This is sent when the toolbar needs some display information
#define TBN_GETDISPINFOW (TBN_FIRST - 17) // This is sent when the toolbar needs some display information
#define TBN_GETINFOTIPA (TBN_FIRST - 18)
#define TBN_GETINFOTIPW (TBN_FIRST - 19)
#define TBN_GETBUTTONINFOW (TBN_FIRST - 20)
#if (_WIN32_IE >= 0x0500)
#define TBN_RESTORE (TBN_FIRST - 21)
#define TBN_SAVE (TBN_FIRST - 22)
#define TBN_INITCUSTOMIZE (TBN_FIRST - 23)
#define TBNRF_HIDEHELP 0x00000001
#define TBNRF_ENDCUSTOMIZE 0x00000002
#endif // (_WIN32_IE >= 0x0500)
#if (_WIN32_IE >= 0x0500)
typedef struct tagNMTBSAVE
{
NMHDR hdr;
DWORD* pData;
DWORD* pCurrent;
UINT cbData;
int iItem;
int cButtons;
TBBUTTON tbButton;
} NMTBSAVE, *LPNMTBSAVE;
typedef struct tagNMTBRESTORE
{
NMHDR hdr;
DWORD* pData;
DWORD* pCurrent;
UINT cbData;
int iItem;
int cButtons;
int cbBytesPerRecord;
TBBUTTON tbButton;
} NMTBRESTORE, *LPNMTBRESTORE;
#endif // (_WIN32_IE >= 0x0500)
typedef struct tagNMTBGETINFOTIPA
{
NMHDR hdr;
LPSTR pszText;
int cchTextMax;
int iItem;
LPARAM lParam;
} NMTBGETINFOTIPA, *LPNMTBGETINFOTIPA;
typedef struct tagNMTBGETINFOTIPW
{
NMHDR hdr;
LPWSTR pszText;
int cchTextMax;
int iItem;
LPARAM lParam;
} NMTBGETINFOTIPW, *LPNMTBGETINFOTIPW;
#ifdef UNICODE
#define TBN_GETINFOTIP TBN_GETINFOTIPW
#define NMTBGETINFOTIP NMTBGETINFOTIPW
#define LPNMTBGETINFOTIP LPNMTBGETINFOTIPW
#else
#define TBN_GETINFOTIP TBN_GETINFOTIPA
#define NMTBGETINFOTIP NMTBGETINFOTIPA
#define LPNMTBGETINFOTIP LPNMTBGETINFOTIPA
#endif
#define TBNF_IMAGE 0x00000001
#define TBNF_TEXT 0x00000002
#define TBNF_DI_SETITEM 0x10000000
typedef struct {
NMHDR hdr;
DWORD dwMask; // [in] Specifies the values requested .[out] Client ask the data to be set for future use
int idCommand; // [in] id of button we're requesting info for
DWORD_PTR lParam; // [in] lParam of button
int iImage; // [out] image index
LPSTR pszText; // [out] new text for item
int cchText; // [in] size of buffer pointed to by pszText
} NMTBDISPINFOA, *LPNMTBDISPINFOA;
typedef struct {
NMHDR hdr;
DWORD dwMask; //[in] Specifies the values requested .[out] Client ask the data to be set for future use
int idCommand; // [in] id of button we're requesting info for
DWORD_PTR lParam; // [in] lParam of button
int iImage; // [out] image index
LPWSTR pszText; // [out] new text for item
int cchText; // [in] size of buffer pointed to by pszText
} NMTBDISPINFOW, *LPNMTBDISPINFOW;
#ifdef UNICODE
#define TBN_GETDISPINFO TBN_GETDISPINFOW
#define NMTBDISPINFO NMTBDISPINFOW
#define LPNMTBDISPINFO LPNMTBDISPINFOW
#else
#define TBN_GETDISPINFO TBN_GETDISPINFOA
#define NMTBDISPINFO NMTBDISPINFOA
#define LPNMTBDISPINFO LPNMTBDISPINFOA
#endif
// Return codes for TBN_DROPDOWN
#define TBDDRET_DEFAULT 0
#define TBDDRET_NODEFAULT 1
#define TBDDRET_TREATPRESSED 2 // Treat as a standard press button
#endif
#ifdef UNICODE
#define TBN_GETBUTTONINFO TBN_GETBUTTONINFOW
#else
#define TBN_GETBUTTONINFO TBN_GETBUTTONINFOA
#endif
#if (_WIN32_IE >= 0x0300)
#define TBNOTIFYA NMTOOLBARA
#define TBNOTIFYW NMTOOLBARW
#define LPTBNOTIFYA LPNMTOOLBARA
#define LPTBNOTIFYW LPNMTOOLBARW
#else
#define tagNMTOOLBARA tagTBNOTIFYA
#define NMTOOLBARA TBNOTIFYA
#define LPNMTOOLBARA LPTBNOTIFYA
#define tagNMTOOLBARW tagTBNOTIFYW
#define NMTOOLBARW TBNOTIFYW
#define LPNMTOOLBARW LPTBNOTIFYW
#endif
#define TBNOTIFY NMTOOLBAR
#define LPTBNOTIFY LPNMTOOLBAR
#if (_WIN32_IE >= 0x0300)
typedef struct tagNMTOOLBARA {
NMHDR hdr;
int iItem;
TBBUTTON tbButton;
int cchText;
LPSTR pszText;
#if (_WIN32_IE >= 0x500)
RECT rcButton;
#endif
} NMTOOLBARA, *LPNMTOOLBARA;
#endif
#if (_WIN32_IE >= 0x0300)
typedef struct tagNMTOOLBARW {
NMHDR hdr;
int iItem;
TBBUTTON tbButton;
int cchText;
LPWSTR pszText;
#if (_WIN32_IE >= 0x500)
RECT rcButton;
#endif
} NMTOOLBARW, *LPNMTOOLBARW;
#endif
#ifdef UNICODE
#define NMTOOLBAR NMTOOLBARW
#define LPNMTOOLBAR LPNMTOOLBARW
#else
#define NMTOOLBAR NMTOOLBARA
#define LPNMTOOLBAR LPNMTOOLBARA
#endif
#endif
#endif // NOTOOLBAR
#if (_WIN32_IE >= 0x0300)
//====== REBAR CONTROL ========================================================
#ifndef NOREBAR
#ifdef _WIN32
#define REBARCLASSNAMEW L"ReBarWindow32"
#define REBARCLASSNAMEA "ReBarWindow32"
#ifdef UNICODE
#define REBARCLASSNAME REBARCLASSNAMEW
#else
#define REBARCLASSNAME REBARCLASSNAMEA
#endif
#else
#define REBARCLASSNAME "ReBarWindow"
#endif
#define RBIM_IMAGELIST 0x00000001
// begin_r_commctrl
#if (_WIN32_IE >= 0x0400)
#define RBS_TOOLTIPS 0x0100
#define RBS_VARHEIGHT 0x0200
#define RBS_BANDBORDERS 0x0400
#define RBS_FIXEDORDER 0x0800
#define RBS_REGISTERDROP 0x1000
#define RBS_AUTOSIZE 0x2000
#define RBS_VERTICALGRIPPER 0x4000 // this always has the vertical gripper (default for horizontal mode)
#define RBS_DBLCLKTOGGLE 0x8000
#else
#define RBS_TOOLTIPS 0x00000100
#define RBS_VARHEIGHT 0x00000200
#define RBS_BANDBORDERS 0x00000400
#define RBS_FIXEDORDER 0x00000800
#endif // _WIN32_IE >= 0x0400
// end_r_commctrl
typedef struct tagREBARINFO
{
UINT cbSize;
UINT fMask;
#ifndef NOIMAGEAPIS
HIMAGELIST himl;
#else
HANDLE himl;
#endif
} REBARINFO, *LPREBARINFO;
#define RBBS_BREAK 0x00000001 // break to new line
#define RBBS_FIXEDSIZE 0x00000002 // band can't be sized
#define RBBS_CHILDEDGE 0x00000004 // edge around top & bottom of child window
#define RBBS_HIDDEN 0x00000008 // don't show
#define RBBS_NOVERT 0x00000010 // don't show when vertical
#define RBBS_FIXEDBMP 0x00000020 // bitmap doesn't move during band resize
#if (_WIN32_IE >= 0x0400) //
#define RBBS_VARIABLEHEIGHT 0x00000040 // allow autosizing of this child vertically
#define RBBS_GRIPPERALWAYS 0x00000080 // always show the gripper
#define RBBS_NOGRIPPER 0x00000100 // never show the gripper
#if (_WIN32_IE >= 0x0500) //
#define RBBS_USECHEVRON 0x00000200 // display drop-down button for this band if it's sized smaller than ideal width
#if (_WIN32_IE >= 0x0501) //
#define RBBS_HIDETITLE 0x00000400 // keep band title hidden
#define RBBS_TOPALIGN 0x00000800 // keep band title hidden
#endif // 0x0501 //
#endif // 0x0500 //
#endif // 0x0400 //
#define RBBIM_STYLE 0x00000001
#define RBBIM_COLORS 0x00000002
#define RBBIM_TEXT 0x00000004
#define RBBIM_IMAGE 0x00000008
#define RBBIM_CHILD 0x00000010
#define RBBIM_CHILDSIZE 0x00000020
#define RBBIM_SIZE 0x00000040
#define RBBIM_BACKGROUND 0x00000080
#define RBBIM_ID 0x00000100
#if (_WIN32_IE >= 0x0400)
#define RBBIM_IDEALSIZE 0x00000200
#define RBBIM_LPARAM 0x00000400
#define RBBIM_HEADERSIZE 0x00000800 // control the size of the header
#endif
typedef struct tagREBARBANDINFOA
{
UINT cbSize;
UINT fMask;
UINT fStyle;
COLORREF clrFore;
COLORREF clrBack;
LPSTR lpText;
UINT cch;
int iImage;
HWND hwndChild;
UINT cxMinChild;
UINT cyMinChild;
UINT cx;
HBITMAP hbmBack;
UINT wID;
#if (_WIN32_IE >= 0x0400)
UINT cyChild;
UINT cyMaxChild;
UINT cyIntegral;
UINT cxIdeal;
LPARAM lParam;
UINT cxHeader;
#endif
} REBARBANDINFOA, *LPREBARBANDINFOA;
typedef REBARBANDINFOA CONST *LPCREBARBANDINFOA;
#define REBARBANDINFOA_V3_SIZE CCSIZEOF_STRUCT(REBARBANDINFOA, wID)
#define REBARBANDINFOW_V3_SIZE CCSIZEOF_STRUCT(REBARBANDINFOW, wID)
typedef struct tagREBARBANDINFOW
{
UINT cbSize;
UINT fMask;
UINT fStyle;
COLORREF clrFore;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -