GDI基础知识

本文详细介绍了GDI中的CDC、画笔、画刷、字体等类的使用方法,并通过实例展示了如何在Windows API中绘制像素点、线条、多边形等图形,包括直线MoveTo和LineTo,折线Polyline,以及圆角矩形RoundRect等操作。
摘要由CSDN通过智能技术生成

一、GDI的基础类

1、CDC类:CObject的直接派生类

(1)、用于获取DC句柄的函数GetDC():全新的临时默认DC,不能长期保存

CDC* GetDC();

(2)、用于获取DC安全句柄的函数GetSafeHdc():获取的DC句柄长期有效

HDC GetSafeHdc();

(3)、用于释放DC的函数Release DC():释放获取的DC

int ReleaseDC(CDC* pDc);

2、画笔类

(1)、使用构造函数创建初始画笔

CPen(
     int nPenStytle,
     int nWidth,
     COLORREF crColor
);

nPenStyle:指定画笔的线条样式

nWidth:指定画笔线条宽度

crColor:设置画笔线条的颜色值(RGB)

(2)、用GreatPen()函数创建画笔对象

HPEN GreatPen(int fnPenStytle,int nWidth,COLORREF crColor)

(3)、用GetStockObject()函数直接创建画笔

HGDIOBJ GetStockObject(int fnObject)

(4)、用CreatPenIndrect()函数创建画笔

HPEN CreatePenIndrect(const LOGPEN* logopen)

//函数只有一个参数,指向一个LOGFPEN型结构体

typedef struct tagLOGPEN
{
    UNIT lopnStyle;
    POINT lopnWidth;
    COLORREF lopnColor;
}LOGPEN;

3、画刷类(面色类)

(1)、使用构造函数初始化画笔

CBrush(
    int fnStytle,
    COLORREF crColor
)

(2)、利用CreateBrush()函数创建画刷

HBRUSH CreateHatchBrush(int fnStyle,COLORREF crColor)

(3)、用GetStockObject()函数直接创建画刷

(4)、使用CreatBrushIndirect()函数创建画刷

HBRUSH CreateBrushIndirect(CONST LOGBRUSH *lplb)

//函数参数指向LOGBRUSH结构体

typedef struct tag LOGBRUSH
{
    UNIT lbStyle,
    COLORREF lbColor,
    LONG lbHatch
}LOGBRUSH;

4、字体类

(1)、利用CreateFont()函数创建字体

HFONT CreateFont(
    int nHeight,int nWidth,  //字体的逻辑高度和逻辑平均宽度
    int nEscapement,  //指定移位向量和设备x轴之间的一个角度,以1/10度为单位
    int nOrientation,  //指定每个字符的基线和设备x轴之间的角度
    int fnWeight,  //在0~1000之间指定字体的权值
    DWORD fdwltatic,  //如果设置为TRUE,则指定斜体
    DWORD fdwUnderline,  //如果设置为TRUE,则指定加下划线的字体
    DWORD fdwStrikeOut,  //如果设置为TRUE,则strikeout指定字体
    DWORD fdwCharSet,  //指
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值