📄 commctrl.h
字号:
BYTE fsStyle;
WORD cx;
DWORD lParam;
LPWSTR pszText;
int cchText;
} TBBUTTONINFOW, *LPTBBUTTONINFOW;
#ifdef UNICODE
#define TBBUTTONINFO TBBUTTONINFOW
#define LPTBBUTTONINFO LPTBBUTTONINFOW
#else
#define TBBUTTONINFO TBBUTTONINFOA
#define LPTBBUTTONINFO LPTBBUTTONINFOA
#endif
// BUTTONINFO APIs do NOT support the string pool.
#define TB_GETBUTTONINFOW (WM_USER + 63)
#define TB_SETBUTTONINFOW (WM_USER + 64)
#define TB_GETBUTTONINFOA (WM_USER + 65)
#define TB_SETBUTTONINFOA (WM_USER + 66)
#ifdef UNICODE
#define TB_GETBUTTONINFO TB_GETBUTTONINFOW
#define TB_SETBUTTONINFO TB_SETBUTTONINFOW
#else
#define TB_GETBUTTONINFO TB_GETBUTTONINFOA
#define TB_SETBUTTONINFO TB_SETBUTTONINFOA
#endif
#define TB_INSERTBUTTONW (WM_USER + 67)
#define TB_ADDBUTTONSW (WM_USER + 68)
#define TB_HITTEST (WM_USER + 69)
// New post Win95/NT4 for InsertButton and AddButton. if iString member
// 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
#define TBN_GETBUTTONINFOA (TBN_FIRST-0)
#define TBN_GETBUTTONINFOW (TBN_FIRST-20)
#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_DROPDOWN 0x00000008 // Button dropped down
#define HICF_ENTERING 0x00000010 // idOld is invalid
#define HICF_LEAVING 0x00000020 // idNew is invalid
#define HICF_RESELECT 0x00000040 // hot item reselected
#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 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 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 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
typedef struct tagNMTOOLBARA {
#if (_WIN32_IE >= 0x0300)
NMHDR hdr;
#endif
int iItem;
TBBUTTON tbButton;
int cchText;
LPSTR pszText;
} NMTOOLBARA, FAR* LPNMTOOLBARA;
typedef struct tagNMTOOLBARW {
#if (_WIN32_IE >= 0x0300)
NMHDR hdr;
#endif
int iItem;
TBBUTTON tbButton;
int cchText;
LPWSTR pszText;
} NMTOOLBARW, FAR* LPNMTOOLBARW;
#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
#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
typedef struct tagREBARINFO
{
UINT cbSize;
UINT fMask;
#ifndef NOIMAGEAPIS
HIMAGELIST himl;
#else
HANDLE himl;
#endif
} REBARINFO, FAR *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
#endif
#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, FAR *LPREBARBANDINFOA;
typedef REBARBANDINFOA CONST FAR *LPCREBARBANDINFOA;
typedef struct tagREBARBANDINFOW
{
UINT cbSize;
UINT fMask;
UINT fStyle;
COLORREF clrFore;
COLORREF clrBack;
LPWSTR 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
} REBARBANDINFOW, FAR *LPREBARBANDINFOW;
typedef REBARBANDINFOW CONST FAR *LPCREBARBANDINFOW;
#ifdef UNICODE
#define REBARBANDINFO REBARBANDINFOW
#define LPREBARBANDINFO LPREBARBANDINFOW
#define LPCREBARBANDINFO LPCREBARBANDINFOW
#else
#define REBARBANDINFO REBARBANDINFOA
#define LPREBARBANDINFO LPREBARBANDINFOA
#define LPCREBARBANDINFO LPCREBARBANDINFOA
#endif
#define RB_INSERTBANDA (WM_USER + 1)
#define RB_DELETEBAND (WM_USER + 2)
#define RB_GETBARINFO (WM_USER + 3)
#define RB_SETBARINFO (WM_USER + 4)
#if (_WIN32_IE < 0x0400)
#define RB_GETBANDINFO (WM_USER + 5)
#endif
#define RB_SETBANDINFOA (WM_USER + 6)
#define RB_SETPARENT (WM_USER + 7)
#if (_WIN32_IE >= 0x0400)
#define RB_HITTEST (WM_USER + 8)
#define RB_GETRECT (WM_USER + 9)
#endif
#define RB_INSERTBANDW (WM_USER + 10)
#define RB_SETBANDINFOW (WM_USER + 11)
#define RB_GETBANDCOUNT (WM_USER + 12)
#define RB_GETROWCOUNT (WM_USER + 13)
#define RB_GETROWHEIGHT (WM_USER + 14)
#if (_WIN32_IE >= 0x0400)
#define RB_IDTOINDEX (WM_USER + 16) // wParam == id
#define RB_GETTOOLTIPS (WM_USER + 17)
#define RB_SETTOOLTIPS (WM_USER + 18)
#define RB_SETBKCOLOR (WM_USER + 19) // sets the default BK color
#define RB_GETBKCOLOR (WM_USER + 20) // defaults to CLR_NONE
#define RB_SETTEXTCOLOR (WM_USER + 21)
#define RB_GETTEXTCOLOR (WM_USER + 22) // defaults to 0x00000000
#define RB_SIZETORECT (WM_USER + 23) // resize the rebar/break bands and such to this rect (lparam)
#endif // _WIN32_IE >= 0x0400
#ifdef UNICODE
#define RB_INSERTBAND RB_INSERTBANDW
#define RB_SETBANDINFO RB_SETBANDINFOW
#else
#define RB_INSERTBAND RB_INSERTBANDA
#define RB_SETBANDINFO RB_SETBANDINFOA
#endif
#if (_WIN32_IE >= 0x0400)
// for manual drag control
// lparam == cursor pos
// -1 means do it yourself.
// -2 means use what you had saved before
#define RB_BEGINDRAG (WM_USER + 24)
#define RB_ENDDRAG (WM_USER + 25)
#define RB_DRAGMOVE (WM_USER + 26)
#define RB_GETBARHEIGHT (WM_USER + 27)
#define RB_GETBANDINFOW (WM_USER + 28)
#define RB_GETBANDINFOA (WM_USER + 29)
#ifdef UNICODE
#define RB_GETBANDINFO RB_GETBANDINFOW
#else
#define RB_GETBANDINFO RB_GETBANDINFOA
#endif
#define RB_MINIMIZEBAND (WM_USER + 30)
#define RB_MAXIMIZEBAND (WM_USER + 31)
#define RB_GETDROPTARGET (WM_USER + 32)
#define RB_GETBANDBORDERS (WM_USER + 34) // returns in lparam = lprc the amount of edges added to band wparam
#define RB_SHOWBAND (WM_USER + 35) // show/hide band
#define RB_SETPALETTE (WM_USER + 37)
#define RB_GETPALETTE (WM_USER + 38)
#define RB_MOVEBAND (WM_USER + 39)
#endif // _WIN32_IE >= 0x0400
#define RBN_HEIGHTCHANGE (RBN_FIRST - 0)
#if (_WIN32_IE >= 0x0400)
#define RBN_GETOBJECT (RBN_FIRST - 1)
#define RBN_LAYOUTCHANGED (RBN_FIRST - 2)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -