Windows API学习-GDI绘图基础与轻量进阶(7)
- 简 介
- 下 载
- 留 言
- 说 明
创建和使用画刷
Windows API 中有两个函数可以用来创建画刷。
CreateSolidBrush 函数可以用来创建一个指定颜色的实心画刷,原型为:
HBRUSH CreateSolidBrush( COLORREF crColor ); // crColor为画刷颜色
CreateHatchBrush 函数可以用来创建一个指定颜色的含有特定阴影样式的画刷,原型为:
HBRUSH CreateHatchBrush( int fnStyle, //画刷样式 COLORREF crColor //画刷颜色 );
nStyle 可以有6种取值:
HS_BDIGONAL:45度向上,自左至右的阴影(///) HS_CROSS:表示水平直线和垂直直线交叉阴影(+++) HS_DIAGCROSS:45度交叉阴影(XXX) HS_FDIAGONAL:45度向下自左至右的阴影(\\\) HS_HORIZONTAL:水平阴影(---) HS_VERTICAL:垂直阴影
画刷使用举例:
//窗口过程 LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){ PAINTSTRUCT ps; HDC hdc; //定义两个画刷,请定义为静态变量 static HBRUSH hSolidBrush; static HBRUSH hHatchBrush; switch (message){ case WM_CREATE: //创建蓝色实心画刷,保存句柄到 hSolidBrush 变量 hSolidBrush = CreateSolidBrush(RGB(0, 0, 255)); //创建绿色交叉阴影画刷,保存句柄到 hHatchBrush 变量 hHatchBrush = CreateHatchBrush(HS_DIAGCROSS,RGB(0,255,0)); break; case WM_PAINT: hdc = BeginPaint(hWnd, &ps); //选入蓝色实心画刷到设备环境 SelectObject(hdc, hSolidBrush); Rectangle(hdc, 0, 0, 200, 100); //绘制矩形 //选入绿色交叉画刷到设备环境 SelectObject(hdc, hHatchBrush); Ellipse(hdc,0,100,200,200); //绘制椭圆 EndPaint(hWnd, &ps); break; case WM_DESTROY: //请做好善后工作,处理 WM_DESTROY 消息时删除之前我们创建的一切GDI对象。 DeleteObject(hSolidBrush); DeleteObject(hHatchBrush); PostQuitMessage(0); break; default: return DefWindowProc(hWnd, message, wParam, lParam); } return 0; }
运行效果: