Skip to content

《VC++面向对象与可视化程序设计》作业,循环显示数行文字

License

Notifications You must be signed in to change notification settings

luowyang/trotting-words

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Trotting Words - 循环显示五行文字

项目要求

设计一个窗口,在窗口中有五行文字,字体分别为楷体、黑体和自定义字体,字号由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毫秒再显示下一行文字。

实现思路

  1. 为了能动态显示文字,我们需要定义一个计时器,每计一定时间刷新一次用户区,使得上一行文字消失,然后等待一段时间(目的是为了产生明显的“切换”效果),再显示文字。我们还需要定义一个静态变量,记住当前显示的文字是第几行文字。
  2. 为了实现字号和颜色的线性变化,有两种方案:第一种是一开始就计算并存储各行文字的字号和颜色,第二种是每次准备输出文字时根据当前的行数计算。我们采用的是第一种方案,当然对于本程序而言,效率上看两种方案没有实质性差别。
  3. 关于文字的格式化问题,X坐标上我们采用了左对齐的方式,即所有行的X坐标都是零;Y坐标则是用上一行文字输出位置加上上一行文字高度,再加上行间距算出当前行的Y坐标,如果输出的是第一行,就将Y坐标置为零。

备注

  1. 如果出现编译报错、无法运行等错误,请将项目属性->常规中的Windows SDK版本改为您所用Windows系统SDK的版本,确保平台工具集为v141或更高,并确保字符集为“使用Unicode字符集”。
  2. 若编译时提示有不匹配的数据类型,如“XX类型的实参与XXX类型的形参不兼容”,请按照您所使用的Windows API的要求更改数据类型。
  3. 本程序中使用了楷体、黑体、幼圆、微软雅黑、隶书这五种字体,如果无法正确显示出字体,请安装对应的字体或在程序中修改使用其他字体。
  4. 如果您在打开项目、编译、运行等环节遇到了其他问题,请与我联系。

About

《VC++面向对象与可视化程序设计》作业,循环显示数行文字

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages