📄 extensions.h
字号:
#if !defined (_EXTENSIONS_H_)
#define _EXTENSIONS_H_
//
// WINDOWSX.H corrections
//
// These definitions are incorrect in WINDOWSX.H.
//
#undef GetWindowID
#define GetWindowID(hwnd) (int)(short)GetDlgCtrlID(hwnd)
#undef HANDLE_WM_GETDLGCODE
#define HANDLE_WM_GETDLGCODE(hwnd, wParam, lParam, fn) \
(LRESULT)(DWORD)(UINT)(fn)((hwnd))
#undef FORWARD_WM_GETDLGCODE
#define FORWARD_WM_GETDLGCODE(hwnd, fn) \
(UINT)(DWORD)(fn)((hwnd), WM_GETDLGCODE, 0, 0)
//
// WINDOWSX.H extensions
//
// These definitions should be in WINDOWSX.H but aren't.
//
/* int Cls_OnCaptureChanged(HWND hwnd, HWND newWnd) */
#define HANDLE_WM_CAPTURECHANGED(hwnd, wParam, lParam, fn) \
(LRESULT)(fn)((hwnd), (HWND) lParam)
#define FORWARD_WM_CAPTURECHANGED(hwnd, newWnd, fn) \
(LRESULT)(fn)((hwnd), WM_CAPTURECHANGED, 0, (LPARAM)(HWND)(newWnd))
/* BOOL Cls_OnContextMenu (HWND hwnd, HWND hwndCtl, int xPos, int yPos) */
#define HANDLE_WM_CONTEXTMENU(hwnd, wParam, lParam, fn) \
(LRESULT)(DWORD)(BOOL)(fn)((hwnd), (HWND) wParam, (int)LOWORD(lParam), (int)HIWORD(lParam))
#define FORWARD_WM_CONTEXTMENU(hwnd, hwndCtl, xPos, yPos, fn) \
(BOOL)(DWORD)(fn)((hwnd), WM_CONTEXTMENU, (WPARAM)(HWND)hwndCtl, MAKELPARAM((xPos), (yPos)))
/* void Cls_OnDisplayChange (HWND hwnd, UINT cBitsPerPixel, UINT cx, UINT cy) */
#define HANDLE_WM_DISPLAYCHANGE(hwnd, wParam, lParam, fn) \
((fn)((hwnd), (UINT)(wParam), (UINT)LOWORD(lParam), (UINT)HIWORD(lParam)),0L)
#define FORWARD_WM_DISPLAYCHANGE(hwnd, cBitsPerPixel, cxScreen, cyScreen, fn) \
(void)(fn)((hwnd), WM_DISPLAYCHANGE, (WPARAM)(UINT)(cBitsPerPixel), MAKELPARAM((cxScreen), (cyScreen)))
/* void Cls_OnEnterMenuLoop(HWND hwnd, BOOL isTrackPopup) */
#define HANDLE_WM_ENTERMENULOOP(hwnd, wParam, lParam, fn) \
((fn)((hwnd), (BOOL)wParam), 0L)
#define FORWARD_WM_ENTERMENULOOP(hwnd, isTrackPopup, fn) \
(void)(fn)((hwnd), WM_ENTERMENULOOP, (WPARAM)(isTrackPopup), 0L)
/* void Cls_OnExitMenuLoop(HWND hwnd, BOOL isTrackPopup) */
#define HANDLE_WM_EXITMENULOOP(hwnd, wParam, lParam, fn) \
((fn)((hwnd), (BOOL)wParam), 0L)
#define FORWARD_WM_EXITMENULOOP(hwnd, isTrackPopup, fn) \
(void)(fn)((hwnd), WM_EXITMENULOOP, (WPARAM)(isTrackPopup), 0L)
/* void Cls_OnEnterSizeMove(HWND hwnd) */
#define HANDLE_WM_ENTERSIZEMOVE(hwnd, wParam, lParam, fn) \
((fn)((hwnd)), 0L)
#define FORWARD_WM_ENTERSIZEMOVE(hwnd, fn) \
(void)(fn)((hwnd), WM_ENTERSIZEMOVE, 0, 0)
/* void Cls_OnExitSizeMove(HWND hwnd) */
#define HANDLE_WM_EXITSIZEMOVE(hwnd, wParam, lParam, fn) \
((fn)((hwnd)), 0L)
#define FORWARD_WM_EXITSIZEMOVE(hwnd, fn) \
(void)(fn)((hwnd), WM_EXITSIZEMOVE, 0, 0)
/* void Cls_OnHelp(HWND hwnd, LPHELPINFO helpinfo) */
#define HANDLE_WM_HELP(hwnd, wParam, lParam, fn) \
((fn)((hwnd), (LPHELPINFO)(lParam)),0L)
#define FORWARD_WM_HELP(hwnd, lphi, fn) \
(void)(fn)((hwnd),WM_HELP,(WPARAM)0,(LPARAM)(LPHELPINFO)(lphi))
/* void Cls_OnPrintClient(HWND hwnd, HDC hdc, UINT uFlags) */
#define HANDLE_WM_PRINTCLIENT(hwnd, wParam, lParam, fn) \
((fn)((hwnd), (HDC)(wParam), (UINT)(lParam)),0L)
#define FORWARD_WM_PRINTCLIENT(hwnd, hdc, uFlags, fn) \
(void)(fn)((hwnd),WM_PRINTCLIENT,(WPARAM)(HDC)(wParam),(LPARAM)(UINT)(uFlags))
/* void Cls_OnSettingChange(HWND hwnd, UINT Flags, LPCTSTR key) */
#define HANDLE_WM_SETTINGCHANGE(hwnd, wParam, lParam, fn) \
((fn)((hwnd), (UINT)(wParam),(LPCTSTR)(lParam)),0L)
#define FORWARD_WM_SETTINGCHANGE(hwnd, uiFlag, pszMetrics, fn) \
(void)(fn)((hwnd),WM_SETTINGCHANGE,(WPARAM)(UINT)uiFlag,(LPARAM)(LPCTSTR)pszMetrics)
/* void Cls_OnUserChanged(HWND hwnd) */
#define HANDLE_WM_USERCHANGED(hwnd, wParam, lParam, fn) \
((fn)(hwnd),0L)
#define FORWARD_WM_USERCHANGED(hwnd, fn) \
(void)(fn)((hwnd),WM_USERCHANGED,(WPARAM)0,(LPARAM)0)
/*void Button_Click(HWND hwnd) */
#define Button_Click(hwnd) \
(void)SendMessage((hwnd), BM_CLICK, 0, 0)
/* int Edit_GetThumb(HWND hwnd) */
#define Edit_GetThumb(hwnd) \
(int)SendMessage((hwnd), EM_GETTHUMB, 0, 0)
/* int Edit_CharFromPos(HWND hwnd, int x, int y) */
#define Edit_CharFromPos(hwnd, x, y) \
(int)SendMessage((hwnd), EM_CHARFROMPOS, 0, MAKELPARAM((x), (y)))
/* void Edit_GetWordBreakProcEx(HWND hwnd) */
#define Edit_GetWordBreakProcEx(hwnd) \
((WORDBREAKPROCEX)SendMessage((hwndCtl), EM_GETWORDBREAKPROCEX, 0, 0))
/* BOOL Edit_LineScroll(HWND hwnd, int hscroll, int vscroll) */
#define Edit_LineScroll(hwnd, hscroll, vscroll) \
(BOOL)SendMessage((hwnd), (WPARAM)(int)(hScroll), (LPARAM)(int)(vscroll))
/* void Edit_PosFromChar(HWND hwnd, LPPOINT pt, int pos) */
#define Edit_PosFromChar(hwnd, pt, pos) \
(void)SendMessage((hwnd), EM_POSFROMCHAR, (WPARAM)(LPPOINT)(pt), (LPARAM)(int)(pos))
/* void Edit_SetMargins(HWND hwnd, int which, int left, int right) */
#define Edit_SetMargins(hwnd, which, left, right) \
(void)SendMessage((hwnd), EM_SETMARGINS, (WPARAM)(which), MAKELPARAM((left), (right)))
/* void Edit_SetWordBreakProcEx(HWND hwnd, EDITWORDBREAKPROCEX wbp) */
#define Edit_SetWordBreakProcEx(hwndCtl, wbp) \
((void)SendMessage((hwndCtl), EM_SETWORDBREAKPROCEX, 0L, (LPARAM)(EDITWORDBREAKPROCEX)(wbp)))
/* HANDLE Static_SetImage(HWND hwnd, int imagetype, HANDLE himage) */
#define Static_SetImage(hwnd, imagetype, himage) \
(HANDLE)SendMessage((hwnd), STM_SETIMAGE, (WPARAM)(imagetype), \
(LPARAM)(HANDLE)(himage))
/* HANDLE Static_GetImage(HWND hwnd, int imagetype) */
#define Static_GetImage(hwnd, imagetype) \
(HANDLE)SendMessage((hwnd), STM_GETIMAGE, (WPARAM)(imagetype), 0)
/* int ListBox_AddFile(HWND hwnd, LPCTSTR filename) */
#define ListBox_AddFile(hwnd, filename) \
(int)SendMessage((hwnd), LB_ADDFILE, 0, (LPARAM)(LPCTSTR)(filename))
/* int ListBox_GetAnchorIndex(HWND hwnd) */
#define ListBox_GetAnchorIndex(hwnd) \
(int)SendMessage((hwnd), LB_GETANCHORINDEX, 0, 0)
/* LCID ListBox_GetLocale(HWND hwnd) */
#define ListBox_GetLocale(hwnd) \
(LCID)SendMessage((hwnd), LB_GETLOCALE, 0, 0)
/* int ListBox_InitStorage(HWND hwnd, int nItems, int stringBytes) */
#define ListBox_InitStorage(hwnd, nItems, stringBytes) \
(int)SendMessage((hwnd), LB_INITSTORAGE, (WPARAM)(int)(nItems), \
(LPARAM)(int)(stringBytes))
/* int ListBox_ItemFromPoint(HWND hwnd, int x, int y) */
#define ListBox_ItemFromPoint(hwnd, x, y) \
(int)SendMessage((hwnd), LB_ITEMFROMPOINT, 0, MAKELONG((x), (y)))
/* int ListBox_SelItemRangeEx(HWND hwnd, int first, int last) */
#define ListBox_SelItemRangeEx(hwnd, first, last) \
(int)SendMessage((hwnd), LB_SELITEMRANGEEX, (WPARAM)(int)(first), \
(LPARAM)(int)(last))
/* int ListBox_SetAnchorIndex(HWND hwnd, int index) */
#define ListBox_SetAnchorIndex(hwnd, index) \
(int)SendMessage((hwnd), LB_SETANCHORINDEX, (WPARAM)(int)(index), 0)
/* LCID ListBox_SetLocale(HWND hwnd, LCID locale) */
#define ListBox_SetLocale(hwnd, locale) \
(LCID)SendMessage((hwnd), LB_SETLOCALE, (WPARAM)(LCID)(locale), 0)
#define ComboBox_GetDroppedWidth(hwnd) \
((int)(DWORD)SendMessage((hwnd), CB_GETDROPPEDWIDTH, 0, 0))
/* LCID ComboBox_GetLocale(HWND hwnd) */
#define ComboBox_GetLocale(hwnd) \
(LCID)SendMessage((hwnd), CB_GETLOCALE, 0, 0)
#define ComboBox_GetTopIndex(hwndCtl) \
((int)(DWORD)SendMessage((hwndCtl), CB_GETTOPINDEX, 0L, 0L))
#define ComboBox_SetDroppedWidth(hwnd, width) \
(int)SendMessage((hwnd), CB_SETDROPPEDWIDTH, (WPARAM)(int)width, 0)
/* int ComboBox_SetHorizontalExtent(HWND hwnd, int width) */
#define ComboBox_SetHorizontalExtent(hwnd, width) \
(void)SendMessage((hwnd), CB_SETHORIZONTALEXTENT, (WPARAM)(int)(width), 0)
/* LCID ComboBox_SetLocale(HWND hwnd, LCID locale) */
#define ComboBox_SetLocale(hwnd, locale) \
(LCID)SendMessage((hwnd), CB_SETLOCALE, (WPARAM)(LCID)(locale), 0)
#define ComboBox_SetTopIndex(hwndCtl, indexTop) \
((int)(DWORD)SendMessage((hwndCtl), CB_SETTOPINDEX, (WPARAM)(int)(indexTop), 0L))
//
// COMMCTRL.H additions
//
// These definitions should be in COMMCTRL.H.
//
//
// Toolbar message macros
//
#define Toolbar_AddBitmap(hwnd, nButtons, lptbab) \
(int)SendMessage((hwnd),TB_ADDBITMAP,(WPARAM)(UINT)(nButtons),(LPARAM)(LPTBADDBITMAP)(lptbab))
#define Toolbar_AddButtons(hwnd, uNumButtons, lpButtons) \
(BOOL)SendMessage((hwnd),TB_ADDBUTTONS,(WPARAM)(UINT)(uNumButtons),(LPARAM)(LPTBBUTTON)(lpButtons))
#define Toolbar_AddString(hwnd, hinst, idString) \
(int)SendMessage((hwnd),TB_ADDSTRING,(WPARAM)(HINSTANCE)(hinst),(LPARAM)(LPCTSTR)(idString))
#define Toolbar_AutoSize(hwnd) \
(void)SendMessage((hwnd),TB_AUTOSIZE,(WPARAM)0,(LPARAM)0)
#define Toolbar_ButtonCount(hwnd) \
(UINT)SendMessage((hwnd),TB_BUTTONCOUNT,(WPARAM)0,(LPARAM)0)
#define Toolbar_ButtonStructSize(hwnd) \
(void)SendMessage((hwnd),TB_BUTTONSTRUCTSIZE,(WPARAM)sizeof(TBBUTTON),(LPARAM)0)
#define Toolbar_ChangeBitmap(hwnd, idButton, iBitmap) \
(BOOL)SendMessage((hwnd),TB_CHANGEBITMAP,(WPARAM)(int)(idButton),(LPARAM)(UINT)(iBitmap))
#define Toolbar_CheckButton(hwnd, idButton, fCheck) \
(BOOL)SendMessage((hwnd),TB_CHECKBUTTON,(WPARAM)(int)(idButton),(LPARAM)(BOOL)(fCheck))
#define Toolbar_CommandToIndex(hwnd, idButton) \
(UINT)SendMessage((hwnd),TB_COMMANDTOINDEX,(WPARAM)(int)(idButton),(LPARAM)0)
#define Toolbar_Customize(hwnd) \
(void)SendMessage((hwnd),TB_CUSTOMIZE,(WPARAM)0,(LPARAM)0)
#define Toolbar_DeleteButton(hwnd, iButton) \
(BOOL)SendMessage((hwnd),TB_DELETEBUTTON,(WPARAM)(UINT)(iButton),(LPARAM)0)
#define Toolbar_EnableButton(hwnd, idButton, fEnable) \
(BOOL)SendMessage((hwnd),TB_ENABLEBUTTON,(WPARAM)(int)(idButton),(LPARAM)(BOOL)(fEnable))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -