小甲鱼 发表于 2014-7-27 17:11:21

第008讲:文本输出

知识点回顾:


1. GDI

Windows 有三大核心部件,它们分别是 kernel、user 和 GDI。

我们所调用的大部分 API 函数都是封装在这三个子系统中的:


[*]kernel 负责内存管理、文件输入输出及任务管理等
[*]user 主要负责所有的窗口管理,也就是用户界面
[*]GDI 就是图形设备接口的缩写,负责在屏幕或打印机上绘制文本和图形


2. 设备环境

DrawText 是属于 GDI 的一个函数,但是大家回忆一下,我们并不能直接调用 DrawText,我们需要先获得一个叫做“设备环境句柄”的东西,对不对?

你可以把设备环境句柄认为是应用程序使用 GDI 函数的“通行证”。有了它,我们才可以随心所欲地绘制你的客户区。


3. 获取设备环境句柄

第一种是我们之前使用的方法,这种方法在响应WM_PAINT消息时使用
hdc = BeginPaint(hwnd, &ps);
      // 使用GDI函数
EndPaint(hwnd, &ps);

第二种方法适用于任何时候:
hdc = GetDC(hwnd);
      // 使用GDI函数
ReleaseDC(hwnd, hdc);


4. TextOut

TextOut 与 DrawText 相比较起来要简单的多,但Ta拥有 DrawText 没有的功能,就是指定字符串的具体位置。

【API档案】TextOut

WinSDK

锦衣夜行 发表于 2014-8-21 13:11:29

{:9_241:}

redcooper 发表于 2015-1-27 11:31:13

必须的顶一顶

认真 发表于 2015-10-25 20:35:28

:smile:smile:smile看了都要留下脚印

神一般的圣人 发表于 2016-4-30 10:34:34

然而我依然不懂什么是hdc

world1024 发表于 2016-5-13 17:43:49

hdc = GetDC(hwnd);
      // 使用GDI函数
ReleaseDC(hwnd, hdc);
为什么在使用这段函数的时候窗口会不停地闪烁
而且不能进行其他的操作

谦虚求学 发表于 2016-10-27 12:17:40

{:5_91:}

lijialijialijia 发表于 2019-3-7 02:11:16

学习了

曹贝 发表于 2021-7-8 12:54:46

甲鱼大佬,希望你出后面的windows程序设计后面的课程
页: [1]
查看完整版本: 第008讲:文本输出