windows图形基础---Win32
2007-11-19 22:03
316 查看
1. GDI呼叫函数
1) 取得或释放设备内容函数
BeginPaint(), EndPaint();
GetDC(), ReleaseDC();
2) 取得有关设备内容信息的函数
GetTextMetrics()
3) 绘图函数
TextOut()
4) 设定和取得设备内容参数函数
SetTextColor(), SetTextAlign();
5) 使用设备内容对象函数
CreatePen()
2. GDI基本图形
1) 直线和曲线
2) 填入区域
3) 位图
4) 文字
3. 保存设备内容
在某些情况下,您可能想改变某些设备内容的属性,用改变后的属性进行绘图,然后恢复原来的设备内容。
要简化这一过程可以通过调用SaveDC函数:
int nSavedDC;
SaveDC(HDC hdc);
在想要回到呼叫SaveDC前存在的设备内容时,可以呼叫:
RestoreDC(HDC hdc, int nSavedDC);
4. 边界框函数
画矩形
Rectangle(__in HDC hdc, __in int left, __in int top, __in int right, __in int bottom);
画椭圆
Ellipse(__in HDC hdc, __in int left, __in int top, __in int right, __in int bottom);
画圆角矩形
RoundRect(__in HDC hdc, __in int left, __in int top, __in int right, __in int bottom, __in int width, __in int height);
画弧线
Arc(hdc, xLeft, yTop, xRight, yBottom, xStart, yStart, xEnd, yEnd);
画弓形
Chord(hdc, xLeft, yTop, xRight, yBottom, xStart, yStart, xEnd, yEnd);
画扇形
Pie(hdc, xLeft, yTop, xRight, yBottom, xStart, yStart, xEnd, yEnd) ;
5. 使用设备内容对象
我们可以建立的GDI对象有:逻辑画笔,画刷,位图,区域,字体,和调色盘
1) 逻辑画笔
使用windows现有画笔
画笔决定线颜色,宽度和画笔样式
画笔样式可以是: 实线, 点划线, 或者虚线
内定设备内容中画笔为BLACK_PEN
Windows提供的三种画笔: BLACK_PEN, WHITE_PEN, NULL_PEN
呼叫GetStockObject,可以获得现有画笔的句柄
HPEN = hPen;
hPen = (HPEN)GetStockObject(BLACK_PEN);
现在必须将画笔选进设备内容
SelectObject(hdc, hPen);
或者: hPen = SelectObject(hdc, (HPEN)GetStockObject(WHITE_PEN));
2) 画笔的建立,选择和删除
CreatePen或者CreatePenIndirect函数
HPEN hPen = CreatePen(__in int iStyle, __in int cWidth, __in COLORREF color);
iStyle: PS_SOLID;
PS_DASH;
PS_DOT;
PS_DASHDOT;
PS_DASHDOTDOT;
PS_NULL;
PS_INSIDEFRAME;
SelectObject(__in HDC hdc, __in HGDIOBJ h);
DeleteObject(__in HGDIOBJ ho);
注意: 一般在呼叫EndPaint之后使用DeleteObject,不要删除设备内容正在使用的画笔
DeleteObject (SelectObject (hdc, GetStockObject (BLACK_PEN)));
SelectObject函数返回上一次使用的画笔句柄
SelectObject(hdc, CreatePen(iStyle, cWidth, color));
3) 画刷:
Windows定义了六种画刷:WHITE_BRUSH、LTGRAY_BRUSH、GRAY_BRUSH、DKGRAY_BRUSH、BLACK_BRUSH和NULL_BRUSH
HBRUSH hBrush;
hBrush = (HBRUSH)GetStockObject(LTGRAY_BRUSH);
SelectObject (hdc, hBrush) ;
SelectObject (hdc, GetStockObject (NULL_PEN)) ;
hBrush = CreateSolidBrush(RGB(255, 0, 0)) // 创建单一颜色的画刷
hBrush = CreateHatchBrush (iHatchStyle, crColor) ; // 创建带图案的画刷
1) 取得或释放设备内容函数
BeginPaint(), EndPaint();
GetDC(), ReleaseDC();
2) 取得有关设备内容信息的函数
GetTextMetrics()
3) 绘图函数
TextOut()
4) 设定和取得设备内容参数函数
SetTextColor(), SetTextAlign();
5) 使用设备内容对象函数
CreatePen()
2. GDI基本图形
1) 直线和曲线
2) 填入区域
3) 位图
4) 文字
3. 保存设备内容
在某些情况下,您可能想改变某些设备内容的属性,用改变后的属性进行绘图,然后恢复原来的设备内容。
要简化这一过程可以通过调用SaveDC函数:
int nSavedDC;
SaveDC(HDC hdc);
在想要回到呼叫SaveDC前存在的设备内容时,可以呼叫:
RestoreDC(HDC hdc, int nSavedDC);
4. 边界框函数
画矩形
Rectangle(__in HDC hdc, __in int left, __in int top, __in int right, __in int bottom);
画椭圆
Ellipse(__in HDC hdc, __in int left, __in int top, __in int right, __in int bottom);
画圆角矩形
RoundRect(__in HDC hdc, __in int left, __in int top, __in int right, __in int bottom, __in int width, __in int height);
画弧线
Arc(hdc, xLeft, yTop, xRight, yBottom, xStart, yStart, xEnd, yEnd);
画弓形
Chord(hdc, xLeft, yTop, xRight, yBottom, xStart, yStart, xEnd, yEnd);
画扇形
Pie(hdc, xLeft, yTop, xRight, yBottom, xStart, yStart, xEnd, yEnd) ;
5. 使用设备内容对象
我们可以建立的GDI对象有:逻辑画笔,画刷,位图,区域,字体,和调色盘
1) 逻辑画笔
使用windows现有画笔
画笔决定线颜色,宽度和画笔样式
画笔样式可以是: 实线, 点划线, 或者虚线
内定设备内容中画笔为BLACK_PEN
Windows提供的三种画笔: BLACK_PEN, WHITE_PEN, NULL_PEN
呼叫GetStockObject,可以获得现有画笔的句柄
HPEN = hPen;
hPen = (HPEN)GetStockObject(BLACK_PEN);
现在必须将画笔选进设备内容
SelectObject(hdc, hPen);
或者: hPen = SelectObject(hdc, (HPEN)GetStockObject(WHITE_PEN));
2) 画笔的建立,选择和删除
CreatePen或者CreatePenIndirect函数
HPEN hPen = CreatePen(__in int iStyle, __in int cWidth, __in COLORREF color);
iStyle: PS_SOLID;
PS_DASH;
PS_DOT;
PS_DASHDOT;
PS_DASHDOTDOT;
PS_NULL;
PS_INSIDEFRAME;
SelectObject(__in HDC hdc, __in HGDIOBJ h);
DeleteObject(__in HGDIOBJ ho);
注意: 一般在呼叫EndPaint之后使用DeleteObject,不要删除设备内容正在使用的画笔
DeleteObject (SelectObject (hdc, GetStockObject (BLACK_PEN)));
SelectObject函数返回上一次使用的画笔句柄
SelectObject(hdc, CreatePen(iStyle, cWidth, color));
3) 画刷:
Windows定义了六种画刷:WHITE_BRUSH、LTGRAY_BRUSH、GRAY_BRUSH、DKGRAY_BRUSH、BLACK_BRUSH和NULL_BRUSH
HBRUSH hBrush;
hBrush = (HBRUSH)GetStockObject(LTGRAY_BRUSH);
SelectObject (hdc, hBrush) ;
SelectObject (hdc, GetStockObject (NULL_PEN)) ;
hBrush = CreateSolidBrush(RGB(255, 0, 0)) // 创建单一颜色的画刷
hBrush = CreateHatchBrush (iHatchStyle, crColor) ; // 创建带图案的画刷
相关文章推荐
- Win32图形设计框架基础知识
- Windows 图形编程(Windows Graphics Programming Win32 GDI and DirectDraw)
- 第4章 入门心法——Windows游戏图形基础(上)
- Win32 SDK基础(10)—— 几种常见的Windows消息处理
- windows程序设计:图形基础
- Windows程序设计之图形基础
- 第四章 Windows游戏图形基础
- windows程序设计第五章 图形基础
- Windows编程的图形基础(一)HDC, HPEN, HBRUSH
- Windows编程基础--第1节 第一个win32软件
- Win32 OpenGL编程(4) 2D图形基础(颜色及坐标体系进阶知识)
- Windows程式开发设计指南--图形基础
- Windows学习笔记10——图形基础<二>
- windows程序设计——图形基础
- Windows编程基础--第2节 win32程序资源管理
- 第4章 入门心法——Windows游戏图形基础(下)
- Win32 SDK基础(4)—— 从零开始创建windows窗口(二)
- Windows_Program_Via_C_Translate_Win32编程的背景知识/基础知识_包括基本输入输出机制介绍
- windows基础编程----第四篇(调用GDI绘制出相关图形)
- Win32 SDK基础(9)—— Windows 常用消息大全