|
楼主 |
发表于 2017-1-16 16:58:02
|
显示全部楼层
21.5 标准字体
标准字体包含不同大小,不同样式的等宽字体和比例字体。等宽字体指字符宽度固定的字体,其中所有字符的宽度像素相同。比例字体指其中每个字符有自己单独的宽度像素的字体。
关于字体标识符命名规则,字体文件命名约规则,字体信息、占用flash大小和字符集已经在emWin手册里面有详细的说明,这里就不再啰嗦了,重点是跟大家演示一下效果。
21.5.1 比例字体
STemWin所支持的比例字体以及显示效果如下:
下面是在emWin模拟器上运行的程序(运行方法已经在前面第6章和第8章有讲解):
- #include "GUI.h"
-
-
-
- /*********************************************************************
- *
- * MainTask
- */
- void MainTask(void) {
-
- /* emWin初始化 */
- GUI_Init();
-
- /* 设置不同的字体显示字符 */
- GUI_SetFont(&GUI_Font8_ASCII);
- GUI_DispStringAt("Hello world! www.armfly.com", 0, 0);
- GUI_SetFont(&GUI_Font10S_ASCII);
- GUI_DispStringAt("Hello world! www.armfly.com", 0, 30);
- GUI_SetFont(&GUI_Font13_1);
- GUI_DispStringAt("Hello world! www.armfly.com", 0, 60);
- GUI_SetFont(&GUI_Font16_ASCII);
- GUI_DispStringAt("Hello world! www.armfly.com", 0, 90);
- GUI_SetFont(&GUI_FontComic18B_ASCII);
- GUI_DispStringAt("Hello world! www.armfly.com", 0, 120);
- GUI_SetFont(&GUI_FontComic24B_ASCII);
- GUI_DispStringAt("Hello world! www.armfly.com", 0, 150);
- GUI_SetFont(&GUI_Font32B_ASCII);
- GUI_DispStringAt("Hello world! www.armfly.com", 0, 180);
-
- while (1)
- {
- GUI_Delay(10);
- }
- }
复制代码 模拟器显示效果如下:
21.5.2 比例字体,带边框
STemWin库本身所带的字体库中只有GUI_Font20F_ASCII支持边框显示。显示效果如下:
下面是在emWin模拟器上运行的程序(运行方法已经在前面第6章和第8章有讲解):
- #include "GUI.h"
-
-
-
- /*********************************************************************
- *
- * MainTask
- */
- void MainTask(void) {
-
- /* emWin初始化 */
- GUI_Init();
-
- /* 设置字体显示字符 */
- GUI_SetFont(&GUI_Font20F_ASCII);
- GUI_DispStringAt("Hello world! www.armfly.com", 0, 0);
-
-
- while (1)
- {
- GUI_Delay(10);
- }
- }
复制代码 实际显示效果如下(显示中没有边框,原因待查),
21.5.3 等宽字体
关于等宽字体已经在前面21.3.8小节跟大家进行了简单说明,下面是在emWin模拟器上运行的程序(运行方法已经在前面第6章和第8章有讲解):
- #include "GUI.h"
-
-
-
- /*********************************************************************
- *
- * MainTask
- */
- void MainTask(void) {
-
- /* emWin初始化 */
- GUI_Init();
-
- /* 设置不同的字体显示字符 */
- GUI_SetFont(&GUI_Font6x8_ASCII);
- GUI_DispStringAt("Hello world! www.armfly.com", 0, 0);
- GUI_SetFont(&GUI_Font8x8_ASCII);
- GUI_DispStringAt("Hello world! www.armfly.com", 0, 30);
- GUI_SetFont(&GUI_Font8x10_ASCII);
- GUI_DispStringAt("Hello world! www.armfly.com", 0, 60);
- GUI_SetFont(&GUI_Font8x13_ASCII);
- GUI_DispStringAt("Hello world! www.armfly.com", 0, 90);
- GUI_SetFont(&GUI_Font8x16x1x2);
- GUI_DispStringAt("Hello world! www.armfly.com", 0, 120);
- GUI_SetFont(&GUI_Font8x16x2x2);
- GUI_DispStringAt("Hello world! www.armfly.com", 0, 150);
- GUI_SetFont(&GUI_Font8x16x3x3);
- GUI_DispStringAt("Hello world! www.armfly.com", 0, 180);
-
-
- while (1)
- {
- GUI_Delay(10);
- }
- }
复制代码 实际显示效果如下:
21.5.4 数字字体(比例)
STemWin支持的数字字体主要有以下四种:
下面是emWin模拟器上运行的程序(仅支持数字显示,字符是无法显示的,切记,另外运行方法已经在前面第6章和第8章有讲解):
- #include "GUI.h"
-
-
- /*********************************************************************
- *
- * MainTask
- */
- void MainTask(void) {
-
- /* emWin初始化 */
- GUI_Init();
-
- /* 设置不同的字体显示字符 */
- GUI_SetFont(&GUI_FontD32);
- GUI_DispStringAt("0123456789", 0, 0);
- GUI_SetFont(&GUI_FontD48);
- GUI_DispStringAt("0123456789", 0, 32);
- GUI_SetFont(&GUI_FontD64);
- GUI_DispStringAt("0123456789", 0, 32+48);
- GUI_SetFont(&GUI_FontD80);
- GUI_DispStringAt("0123456789", 0, 32+48+64);
-
- while (1)
- {
- GUI_Delay(10);
- }
- }
复制代码 实际显示效果如下:
21.5.5 数字字体(等宽)
STemWin支持的等宽数字字体主要有以下四种:
下面是emWin模拟器上运行的程序(仅支持数字显示,字符是无法显示的,切记,另外运行方法已经在前面第6章和第8章有讲解):
- #include "GUI.h"
-
- /*********************************************************************
- *
- * MainTask
- */
- void MainTask(void) {
-
- /* emWin初始化 */
- GUI_Init();
-
- /* 设置不同的字体显示字符 */
- GUI_SetFont(&GUI_FontD24x32);
- GUI_DispStringAt("0123456789", 0, 0);
- GUI_SetFont(&GUI_FontD36x48);
- GUI_DispStringAt("0123456789", 0, 32);
- GUI_SetFont(&GUI_FontD48x64);
- GUI_DispStringAt("0123456789", 0, 32+48);
- GUI_SetFont(&GUI_FontD60x80);
- GUI_DispStringAt("0123456789", 0, 32+48+64);
-
-
- while (1)
- {
- GUI_Delay(10);
- }
- }
复制代码 实际显示效果如下: |
|