windows编程学习笔记(3)输出文字

一.GDI和DC简介

GDI即Graphics Device Interface --图形设备接口,是Windows API的一个重要组成部分。它是Windows图形显示程序与实际物理设备之间的桥梁,GDI使得用户无需关心具体设备的细节,而只需在一个虚拟的环境(即逻辑设备)中进行操作。可以说,没有GDI,就没有今天绚烂多彩的windows操作系统
DC即Device Context--设备环境。在GDI中,DC即表示程序可以进行输出操作的环境,比如窗口。
知道了这两个概念,其实输出文字图像操作也就很简单了,就是获取设备环境的句柄,通过GDI函数进行输出文字或者绘图操作。

二.获取设备环境

获取设备环境有两种方式:
1.通过BeginPaint()函数
case WM_PAINT:
hdc = BeginPaint (hwnd, &ps) ;
//使用GDI函数
EndPaint (hwnd, &ps) ;
return 0 ;

2.通过GetDC()函数
case WM_PAINT://绘图消息
hdc = GetDC(hwnd);
//使用GDI函数
ReleaseDC(hwnd, hdc);
break;

两种方式都有一个共同的特点,都是成双成对的函数,BeginPaint()之后需要EndPaint(),GetDC()之后需要ReleaseDC()函数
即在获取了设备环境,输出之后,需要将设备环境释放,如果不释放,其他函数则不能再对相应设备环境进行操作。
还有一点,一般在WM_PAINT消息中,使用BeginPaint()函数,在WM_PAINT消息之外,如果还想要在屏幕上输出,那么就用GetDC()函数。

三.输出文字

最常用的输出文字的函数是TextOut函数,定义如下:

BOOL TextOut(

HDC hdc,           // 设备描述表句柄 

int nXStart,       // 字符串的开始位置 x坐标

int nYStart,       // 字符串的开始位置 y坐标

LPCTSTR lpString,  // 字符串

int cbString       // 字符串中字符的个数

);

代码如下:

case WM_PAINT://绘图消息
hdc = GetDC(hwnd);
TextOut(hdc, 100, 100, L"hello Windows", strlen("hello Windows"));
ReleaseDC(hwnd, hdc);
break;

运行结果:

windows编程学习笔记(3)输出文字_第1张图片



你可能感兴趣的:(windows,Win32,图形,gdi)