当前课程知识点:VC++面向对象与可视化程序设计(上):Windows编程基础 > 第3章 文本与字体 > 3-1 设置文本的设备环境 > 3-1 设置文本的设备环境
返回《VC++面向对象与可视化程序设计(上):Windows编程基础》慕课在线视频课程列表
返回《VC++面向对象与可视化程序设计(上):Windows编程基础》慕课在线视频列表
大家好!今天我们学习文本与字体的操作
Windows大家知道经常使用GDI进行文本的输出
在一定意义上来说
任何内容都可以看成是图形实体
图形和文本实际上并没有非常明显的界限
使用定义好的与设备无关的字体集
Windows就能够维护它的设备无关性
提供“所见即所得”的好处
也就是说屏幕所见的与设备输出的文本是一样的
谈到文本操作,跟我们前面介绍的内容相似
首先我们要获得文本的句柄
在获取文本句柄之后
我们要针对使用的文本,设置它的字体
那么字体大家很熟悉
经常使用的有宋体啊、仿宋、楷体、黑体等等
同时,我们也要设置字符的大小
此外还要设置字符的颜色
然后我们要将这些属性选入设备环境
那么谈到设备环境的问题
我们就要介绍一下如何设置文本的设备环境
对于一个字体来说
字体本身是要描述所显示的文本的大小、类型和外形的
所以字体就有它的物理字体和逻辑字体之分
物理字体是为特殊设备而设计的
因而它是设备相关的
Windows系统提供了七种基本的字体
而逻辑字体定义的字符集是设备无关的
它可以精确地标度
因此得到广泛应用
那前面我们说了
Windows系统提供了七种基本字体
比如说这个FIXED字体 VAR字体 GUI字体等等等等
那么这个我们就不细说了
那如何选择系统字体呢?
有这么几个步骤
首先我们用HFONT定义了字体的句柄变量hF
那这个变量名
大家可以根据你自己的编程习惯来定义
那么这里实际上是一个数据类型
表征字体的句柄
然后我们调用GetStockObject获取系统字体的句柄
然后调用SelectObject将你这个句柄
选入当前HDC这个设备环境
那么这样的话,我们就选择了字体
当然了我们说可以选择系统自带的字体
我们也可以创建自定义的字体
那如果大家需要创建一个自定义的字体的话
我们可以用CreateFont这个函数
那么这里面包含了这么一些参数
比如说包含了字体的高度、字体的宽度
那么这是高宽度实际上决定了字体的文字大小
还有每一行之间
每行文字相对于底角的角度
大家知道有时候你设置字体的样式的时候
它是有倾斜的,实际上就是倾斜度
这第四个参数
是每个文字相对于页底的角度
第四个参数实际上定义的是个性化
对单个文字进行定义
紧接着我们要设置字体的粗细度
字体的倾斜角
是否有下划线、中划线等等等等
这都是一些样式的设置
包括选择的字符集
其他的参数我们就都用缺省值就可以了
最后一个参数是设置了字体的名字
那么这样的话,我们就创建了一个自定义的字体
那么对于这个字体所属的字符集
目前,有这么一些可以选
比如说CHARSET,CHARSET就是标准字符集
OEM厂商制作的字符集
GB2312,就是这是中文的字符集
CHINESEBIG5_CHARSET这个是繁体字的字符集
以及缺省的字符集等等等等
那我们选择了字符集之后
我们也可以设置字体和背景的颜色
设置字体的颜色,我们可以用SetTextColor
那么在这个DC环境下设置它的颜色
这个颜色,它的值跟我们上一节讲的
RGB红绿蓝三原色的值是一样的
也可以设置背景的颜色 我们用SetBkColor
背景的颜色,那么也是一样的
在当前的DC里面设置它的颜色
-讨论实录
--0-0
-1-1 Windows应用程序的特点
--1-1
-1-2 可视化编程
--1-2
-1-3 关于API
--1-3-1
--1-3-2
-1-4 Windows应用程序组成及编程步骤
--1-4-1
--1-4-2
-1-5 应用程序举例
--1-5-1
--1-5-2
--1-5-3
-02-1 Windows图形设备接口
-02-2 绘图工具与颜色
-02-3 常用绘图函数
-02-4 例题和作业
-第2章源代码
--外部链接
--外部链接
-3-1 设置文本的设备环境
-3-2 文本的输出过程
-3-3 例题和作业
-第3章源代码
--外部链接
-4-1 Windows 应用程序中的键盘与鼠标
--4-1
-4-2 键盘的操作应用举例
--4-2
-4-3 例题
--4-3
-4-3 鼠标在应用程序中的应用
--4-3
-4-4 例题4-4
--4-4
-第4章源代码
--外部链接
-5-1 菜单和加速键资源及其应用
--5-1
-5-1(例1)
--5-1(例1)
-5-2 位图资源及其应用
--5-2
-5-3 对话框资源及其应用
--5-3-1
--5-3-2
-5-4 图标资源的应用
--5-4
-第5章源代码
--外部链接
-第一次作业
--第一次作业--作业
-第二次作业
--第二次作业--作业
-第三次作业
--第三次作业--作业