Windows程序设计:画笔
来源:互联网 发布:铜排折弯最简单的算法 编辑:程序博客网 时间:2024/05/20 03:44
在Windows程序中,我们用画笔来绘制图形
通过HPEN来创建画笔句柄:
static HPEN hPen1, hPen2, hPen3; //画笔句柄
然后通过创建画笔函数创建画笔:
HPEN CreatePen( _In_ int fnPenStyle, //画笔的风格 _In_ int nWidth, //占有像素 _In_ COLORREF crColor //颜色);
case WM_CREATE: {hPen1 = CreatePen(PS_SOLID, 10, RGB(0,0,255));hPen2 = CreatePen(PS_SOLID, 10, RGB(255,0,0));hPen3 = CreatePen(PS_SOLID, 15, RGB(0,255,0));}break;
画笔的可选样式:
#define PS_SOLID 0#define PS_DASH 1 /* ------- */#define PS_DOT 2 /* ....... */#define PS_DASHDOT 3 /* _._._._ */#define PS_DASHDOTDOT 4 /* _.._.._ */#define PS_NULL 5
备用画笔:系统已经预定义好的画笔,可以直接被拿来用(注:备用画笔不能被删除!!)
GetStockObject(BLACK_PEN)
具体使用案例:
首先创建画笔和获取窗体的长宽
static HPEN hPen1, hPen2, hPen3; //画笔句柄static HPEN hOldPen; //旧的画笔 用来保存static int cxClient; //x坐标static int cyClient; //y坐标static int LineDis; //线段的数量static int lineWidth = 10;
窗体缩放时长宽变化的数据:
case WM_SIZE: {cxClient = LOWORD(lParam);cyClient = HIWORD(lParam);}break;
画笔的创建:
case WM_CREATE: {hPen1 = CreatePen(PS_DASH, 1, RGB(0,0,255));hPen2 = CreatePen(PS_SOLID, 10, RGB(255,0,0));hPen3 = CreatePen(PS_SOLID, 15, RGB(0,255,0));}break;
case WM_PAINT: { PAINTSTRUCT ps; HDC hdc = BeginPaint(hWnd, &ps); //通过selectObject来选择画笔LineDis = cyClient / (3 + 1);hOldPen = (HPEN)SelectObject(hdc, hPen1); //保存旧画笔MoveToEx(hdc, cxClient/10, LineDis, NULL); LineTo(hdc, cxClient*9/10, LineDis);SelectObject(hdc, hPen2); //选用一支新的画笔赋予hdc句柄MoveToEx(hdc, cxClient / 10, LineDis*2, NULL);LineTo(hdc, cxClient * 9 / 10, LineDis*2);SelectObject(hdc, hPen3); //选用一支新的画笔赋予hdc句柄MoveToEx(hdc, cxClient / 10, LineDis*3, NULL);LineTo(hdc, cxClient * 9 / 10, LineDis*3);SelectObject(hdc, GetStockObject(BLACK_PEN)); //选用一支系统画笔赋予hdc句柄MoveToEx(hdc, cxClient / 2, 0, NULL);LineTo(hdc, cxClient / 2, cyClient); EndPaint(hWnd, &ps); } break;
使用完毕后一定要删除画笔:
case WM_DESTROY: {DeleteObject(hPen1);DeleteObject(hPen2);DeleteObject(hPen3);PostQuitMessage(0);}break;
绘画效果如下:
阅读全文
0 0
- Windows程序设计:画笔
- Windows程序设计--画笔和画刷
- 使用 Windows 现有画笔
- 画笔
- 画笔
- 画笔
- windows编程中画笔与画刷
- windows编程中画笔与画刷
- Windows GDI:画笔Pen使用总结
- windows 程序设计
- Windows程序设计
- Windows程序设计
- Windows 程序设计
- Windows程序设计
- Windows程序设计
- WINDOWS程序设计
- Windows 程序设计
- Windows程序设计
- fastdfs存储小文件的可行性分析
- mysql基础知识
- 闭包是什么?
- 如何将PPT导出为60帧的视频
- jquery基本属性
- Windows程序设计:画笔
- 有趣的图形打印1
- EOJ-3451.易位构词
- Finance系列(3)之Deposits & Lending
- 机器学习基石——作业2解答
- Git_上传到码云版本冲突
- python3爬虫--登录网站
- Mac Tips
- golang语言并发与并行——goroutine和channel的详细理解