⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 winutil.h

📁 傅立叶变换和小波变换是图像压缩的重要工具。该代大戏是利用小波变换进行图像压缩。
💻 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 + -