设计一个窗口,在窗口中有五行文字,字体分别为楷体、黑体和自定义字体,字号由8到40线性增长,每一行的文字相继出现后又消失,而且每一行文字的颜色由GRB(0,0,0)到RGB(255,255,255)线性增长(其他所需参数请自行定义)
- OS:Windows 10
- IDE:Visual Studio 2017 Community
- Windows SDK版本:10.0.17134.0
- 平台工具集:v141及以上
- 字符集:GB2312
- 必需字体:楷体,黑体,幼圆,微软雅黑,隶书
为了确保能成功编译,请确定您的Windows SDK与平台工具集设置满足环境要求,请在编译前将项目属性->常规中的字符集改为“使用Unicode字符集”。
本程序运行中不需要进行任何操作。 编译运行成功后,会显示一个标题为“依次显示五行文字”的白色背景窗口,窗口中会从上至下依次循环显示左对齐的五行文字,分别为:
- 显示一个窗口,在窗口中有五行文字(楷体)
- 字体分别为楷体、黑体和自定义字体,字号由8到40线性增长(黑体)
- 每一行文字的颜色由GRB(0,0,0)到RGB(255,255,255)线性增长(幼圆)
- 每一行的文字相继出现后又消失(微软雅黑)
- 其他所需参数请自行定义(隶书)
括号中是每行文字所用的字体。这五行文字的字号与颜色按题目要求线性增长。每行文字显示显示1400毫秒后消失,等待100毫秒再显示下一行文字。
- 为了能动态显示文字,我们需要定义一个计时器,每计一定时间刷新一次用户区,使得上一行文字消失,然后等待一段时间(目的是为了产生明显的“切换”效果),再显示文字。我们还需要定义一个静态变量,记住当前显示的文字是第几行文字。
- 为了实现字号和颜色的线性变化,有两种方案:第一种是一开始就计算并存储各行文字的字号和颜色,第二种是每次准备输出文字时根据当前的行数计算。我们采用的是第一种方案,当然对于本程序而言,效率上看两种方案没有实质性差别。
- 关于文字的格式化问题,X坐标上我们采用了左对齐的方式,即所有行的X坐标都是零;Y坐标则是用上一行文字输出位置加上上一行文字高度,再加上行间距算出当前行的Y坐标,如果输出的是第一行,就将Y坐标置为零。
- 如果出现编译报错、无法运行等错误,请将项目属性->常规中的Windows SDK版本改为您所用Windows系统SDK的版本,确保平台工具集为v141或更高,并确保字符集为“使用Unicode字符集”。
- 若编译时提示有不匹配的数据类型,如“XX类型的实参与XXX类型的形参不兼容”,请按照您所使用的Windows API的要求更改数据类型。
- 本程序中使用了楷体、黑体、幼圆、微软雅黑、隶书这五种字体,如果无法正确显示出字体,请安装对应的字体或在程序中修改使用其他字体。
- 如果您在打开项目、编译、运行等环节遇到了其他问题,请与我联系。