Windows API一日一练(32)CreatePen函数

Post date: 2012/3/27 上午 07:26:04

分类: Direct3D2007-09-09 10:26 3033人阅读 评论(3) 收藏 举报

画画是讲究色彩与线条,不同的地方是采用不同的画笔。上面显示直线,都是采用设备缺省的画笔来画直线。现在就来介绍怎么样创建自己的画笔,比如设置画笔的颜色,画笔的大小。像Windows按钮显示为3D的形状,其实就是用两种颜色画笔分别画相应的线,就生成按钮。而创建画笔就需要使用到CreatePen函数。

函数CreatePen声明如下:

WINGDIAPI HPEN WINAPI CreatePen( __in int iStyle, __in int cWidth, __in COLORREF color);

iStyle是画笔的类型,比如是实线,还是虚线等等。

cWidth是线的宽度。

color是线的颜色。

调用这个函数的例子如下:

#001 //

#002 //界面显示输出.

#003 //

#004 //蔡军生 2007/09/10 QQ:9073204 深圳

#005 //

#006 void CCaiWinMsg::OnDraw(HDC hDC)

#007 {

#008 //移到指定位置.

#009 POINT ptLeftTop;

#010 ptLeftTop.x = 10;

#011 ptLeftTop.y = 10;

#012 MoveToEx(hDC,ptLeftTop.x,ptLeftTop.y,NULL);

#013

#014 //修改直线的颜色,粗细.

#015 HPEN hPen = CreatePen(PS_SOLID, 10, RGB(0, 255, 0));

#016

#017 //设置当前设备的画笔.

#018 HGDIOBJ hOldPen = SelectObject(hDC,hPen);

#019

#020 //从(10,10)到(100,100)画一条直线.

#021 ptLeftTop.x = 100;

#022 ptLeftTop.y = 100;

#023 LineTo(hDC,ptLeftTop.x,ptLeftTop.y);

#024

#025 //恢复原来的画笔.

#026 SelectObject(hDC,hOldPen);

#027

#028 //删除创建的画笔.

#029 DeleteObject(hPen);

#030

#031 }