从0开始学习《Windows程序设计》:文本!

一、windows三大核心部件

kernel, GDI, user。我们所调用的函数都是分装在这三大系统的子系统中的。

1、其中kernel主要负责,内存管理,文件的输入与输出以及人物管理。
2、user主要和用户打交道,主要负责所有窗口管理,用户界面。
3、GDI是图形设备接口的缩写,负责在屏幕和打印机上绘制文本和图形。

比如我们之前使用的DrawText,就是属于GDI函数,但在使用该函数之前,我们要获得一个设备句柄,我们可以这样认为设环境句柄是应用程序使用GDI函数的通行证。
设备环境也叫设备上下文,它是GDI内部维护的一个设备的数据结构,这里面存放着你要打印的文本的颜色,文本的背景色,文本的对齐方式。
因此在绘制前必须获得对应的设备环境句柄。获得属性值后,windows才知道怎么去调用GDI函数。

二、获取设备环境句柄的方式
方法一:

hdc = BeginPaint(hwnd, &ps);
//使用GDI函数
EndPaint(hwnd, &ps);
//使用完,别忘记进行扫尾工作。

方法二:

hdc = GetDC(hwnd);
//使用GDI函数
ReleaseDC(hwnd, hdc);

函数功能:
TextOut 函数使用当前选择的字体、背景颜色和文本颜色,将一个字符串绘制于窗口的指定位置。

API 函数原型:
注释:In 说明该参数是输入的,opt 说明该参数是可选参数。

BOOL TextOut(
  _In_  HDC hdc,
  _In_  int nXStart,
  _In_  int nYStart,
  _In_  LPCTSTR lpString,
  _In_  int cchString
);

参数解析:
参数 含义
hdc 设备环境句柄
nXStart 指定用于字符串对齐的基准点的逻辑 x 坐标(有关基准点请看下边备注)
nYStart 指定用于字符串对齐的基准点的逻辑 y 坐标
lpString 1. 指向将被绘制字符串的指针
2. 该字符串不必以’\0’结束,因为 cchString 参数指定了该字符串的长度
cchString lpString 字符串的长度(有多少个字符)

返回值:

  1. 如果函数调用成功,返回值为非 0;
  2. 如果函数调用失败,返回值为 0。

该函数详细文档:https://fishc.com.cn/forum.php?mod=viewthread&tid=49474&extra=page%3D1%26filter%3Dtypeid%26typeid%3D420
转自鱼C论坛

TextOut(hdc, 400, 300, TEXT("爱心天使的守护!"), 8);

从0开始学习《Windows程序设计》:文本!_第1张图片

你可能感兴趣的:(从0开始学习《Windows程序设计》:文本!)