📄 winutil.h
字号:
#ifndef CRB_WINUTIL_H
#define CRB_WINUTIL_H
#include <windows.h>
#include <crblib/inc.h>
void ShowLastError(char *prefix);
/*** rect util macros use RECT , not pointer **/
#define width(rect) ((rect).right - (rect).left)
#define height(rect) ((rect).bottom - (rect).top)
#define midx(rect) ((rect).left + (width(rect)/2))
#define midy(rect) ((rect).top + (height(rect)/2))
#define copyRect(x,y) do{ (x).left = (y).left; (x).right = (y).right; (x).top = (y).top; (x).bottom = (y).bottom; }while(0)
#define inRect(x,y,r) ( (x) > (r).left && (x) < (r).right && (y) > (r).top && (y) < (r).bottom )
#define shrinkR(r,v) do{ (r).left += v; (r).right -= v; (r).top += v; (r).bottom -= v; }while(0)
#define growR(r,v) do{ (r).left -= v; (r).right += v; (r).top -= v; (r).bottom += v; }while(0)
/*****/
#define BltRectZero(to,r,from) BitBlt(to,(r).left,(r).top,width(r),height(r),from,0,0,SRCCOPY)
#define BltRectSame(to,r,from) BitBlt(to,(r).left,(r).top,width(r),height(r),from,(r).left,(r).top,SRCCOPY)
#define InvalidateWindow(w) InvalidateRect(w,NULL,FALSE)
#define moveTo(hdc,x,y) MoveToEx(hdc,x,y,NULL)
#define lineTo LineTo
/** some funcs require init/dispose! ***/
extern void frameRect(HDC hdc,RECT *rect,HPEN pen);
extern void winUtilDispose(void); /** for pens for drawing bevels **/
extern void winUtilInit(void);
extern void await(int millisecs);
extern bool intersectRect(RECT *a,RECT *b);
extern void cutTailSpaces(char *str);
extern void niceCapitals(char *str);
#define HS_SOLID (-1)
extern HBRUSH createBrush(int style,ulong color);
#define drawPt(hdc,x,y) \
if ( 0 ) { } else { moveTo(hdc,x,y); \
lineTo(hdc,x,y); }
#define drawLine(hdc,fmx,fmy,tox,toy) \
if ( 0 ) { } else { moveTo(hdc,fmx,fmy); \
lineTo(hdc,tox,toy); }
#define Circle(hdc,x,y,radius) \
Ellipse(hdc,(x) - (radius),(y) - (radius),(x) + (radius),(y) + (radius))
extern void drawLineClipped(HDC hdc,int fmx,int fmy,int tox,int toy,RECT *r);
extern void bevelLineX(HDC hdc,int fmx,int tox,int y);
extern void bevelRectI(HDC hdc,RECT * r);
extern void bevelRect(HDC hdc,RECT * r);
extern void fancyBevelRect(HDC hdc,RECT * r);
extern void fancyBevelRectOut(HDC hdc,RECT * r);
extern void fancyBevelRectI(HDC hdc,RECT * r);
extern void fancyBevelRectIOut(HDC hdc,RECT * r);
extern void changeDlgInt(HWND dlg,int control,int val,bool sign);
extern void SetTextBkColor(HDC hdc,ulong fore,ulong back);
extern void dialogScrollRange(HWND dlg,int control,int range);
extern void dialogScrollSetPos(HWND dlg,int control,int pos);
extern int dialogScrollGetPos(HWND dlg,int control);
extern void dialogListClear(HWND dlg,int control);
extern void dialogListAdd(HWND dlg,int control,char *str);
extern int dialogListGetSel(HWND dlg,int control);
extern void dialogListSetSel(HWND dlg,int control,int sel);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -