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

📄 draw3d.c

📁 Microwindows genesis was with the NanoGUI project, and is now the primary distribution for both th
💻 C
字号:
#include "windows.h"#include "wintools.h"/* * WIN Draw Library *	Draw3dShadow - draws a shadow with bottom-left and top-right missing *	Draw3dBox - draws a complete shadow *	Draw3dInset - draw a 2 line 3d inset *	Draw3dOutset - draw a 2 line 3d outset *//* * Draw3dShadow * 	NOINDENT_BLACK	T=white, B=black * 	NOINDENT_GRAY	T=white, B=dkgray * 	INDENT_BLACK	T=black, B=white * 	INDENT_GRAY		T=dkgray, B=white * *	TTTTTTTTTTTTTT *	T             B *	T             B *	 BBBBBBBBBBBBBB */void WINAPIDraw3dShadow(HDC hDC,int x,int y,int w,int h,COLORREF crTop,COLORREF crBottom){	HPEN	hPenTop, hPenBottom, holdPen;	hPenTop = CreatePen( PS_SOLID, 1, crTop);	hPenBottom = CreatePen( PS_SOLID, 1, crBottom);	holdPen = SelectObject( hDC, hPenTop);	MoveToEx( hDC, x, y+h-2, NULL);	LineTo( hDC, x, y);				/* left side*/	LineTo( hDC, x+w-1, y);				/* top side*/	SelectObject( hDC, hPenBottom);	MoveToEx( hDC, x+w-1, y+1, NULL);	LineTo( hDC, x+w-1, y+h-1);			/* right side*/	LineTo( hDC, x, y+h-1);				/* bottom side*/	SelectObject( hDC, holdPen);	DeleteObject( hPenTop);	DeleteObject( hPenBottom);}/* * Draw3dBox * *	TTTTTTTTTTTTTTB *	T             B *	T             B *	BBBBBBBBBBBBBBB */void WINAPIDraw3dBox(HDC hDC,int x,int y,int w,int h,COLORREF crTop,COLORREF crBottom){	HPEN		hPenTop, hPenBottom, holdPen;	hPenTop = CreatePen( PS_SOLID, 1, crTop);	hPenBottom = CreatePen( PS_SOLID, 1, crBottom);	holdPen = SelectObject( hDC, hPenTop);	MoveToEx( hDC, x, y+h-2, NULL);	LineTo( hDC, x, y);				/* left side*/	MoveToEx( hDC, x, y, NULL);	LineTo( hDC, x+w-1, y);				/* top side*/	SelectObject( hDC, hPenBottom);	MoveToEx( hDC, x+w-1, y, NULL);	LineTo( hDC, x+w-1, y+h-1);			/* right side*/	LineTo( hDC, x-1, y+h-1);			/* bottom side*/	SelectObject( hDC, holdPen);	DeleteObject( hPenTop);	DeleteObject( hPenBottom);}/* * Draw 2 line deep 3d inset */void WINAPIDraw3dInset(HDC hDC,int x,int y,int w,int h){	Draw3dBox(hDC, x, y, w, h,		GetSysColor(COLOR_BTNSHADOW), GetSysColor(COLOR_BTNHIGHLIGHT));	++x; ++y; w -= 2; h -= 2;	Draw3dBox(hDC, x, y, w, h,		GetSysColor(COLOR_WINDOWFRAME), GetSysColor(COLOR_3DLIGHT));}/* * Draw 2 line deep 3d outset */void WINAPIDraw3dOutset(HDC hDC,int x,int y,int w,int h){	Draw3dBox(hDC, x, y, w, h,		GetSysColor(COLOR_3DLIGHT), GetSysColor(COLOR_WINDOWFRAME));	++x; ++y; w -= 2; h -= 2;	Draw3dBox(hDC, x, y, w, h,		GetSysColor(COLOR_BTNHIGHLIGHT), GetSysColor(COLOR_BTNSHADOW));}/* * Draw 1 line pushed down rectangle */void WINAPIDraw3dPushDown(HDC hDC, int x, int y, int w, int h){	Draw3dBox(hDC, x, y, w, h, GetSysColor(COLOR_BTNSHADOW),		GetSysColor(COLOR_BTNSHADOW));}/* * Draw either 3d up or down depending on state */void WINAPIDraw3dUpDownState(HDC hDC, int x, int y, int w, int h, BOOL fDown){	if (fDown)		Draw3dPushDown(hDC, x, y, w, h);	else Draw3dOutset(hDC, x, y, w, h);}void WINAPIDraw3dUpFrame(HDC hDC, int l, int t, int r, int b){	RECT	rc;	HBRUSH	hbr;	SetRect(&rc, l, t, r, b);	Draw3dBox(hDC, rc.left, rc.top,		rc.right-rc.left, rc.bottom-rc.top,		GetSysColor(COLOR_3DLIGHT),		GetSysColor(COLOR_WINDOWFRAME));	InflateRect(&rc, -1, -1);	Draw3dBox(hDC, rc.left, rc.top,		rc.right-rc.left, rc.bottom-rc.top,		GetSysColor(COLOR_BTNHIGHLIGHT),		GetSysColor(COLOR_BTNSHADOW));	InflateRect(&rc, -1, -1);	hbr = CreateSolidBrush(GetSysColor(COLOR_BTNFACE));	FillRect(hDC, &rc, hbr);	DeleteObject(hbr);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -