野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 75121|回复: 209

[emWin] 【emWin5.20使用教程】第二期:文本显示

  [复制链接]
发表于 2013-5-19 13:48:27 | 显示全部楼层 |阅读模式
说明: (野火团队原创教程,未经许可禁止转载)
         VC6.0  emWin5.20下载地址
         http://pan.baidu.com/share/link?shareid=641741&uk=286563520
         uCGUIBulder 4.0
         http://pan.baidu.com/share/link?shareid=641752&uk=286563520
         

一、文本说明
    使用emWin 显示文本很容易。仅需要很少的例程知识,就可以使用任何有效的字体进行文本书写,
然后显示在任一位置上。
(1)控制字符是指字符代码小于32的字符。控制字符被定义为ASCII代码的一部分。emWin 忽略了下
         表所列字符以外的所有控制字符

1.png
(2)文本显示函数API也很多,这里就不一一的进行说明了。
二、选择文本绘制模式
    通常,在所选窗口的当前文本位置,使用所选字体以正常文本模式写入文本。正常文本模式意思
是指文本覆盖已经显示的任何内容,在这种情况下,字符掩码中设定的位元在屏幕上被设定。在这种
模式下,活动位元使用前景颜色写入,而非活动位元用背景颜色写入。但在某些情况下,需要更改这
种默认模式。emWin 为此提供了四种可以组合使用的标记(一种默认加三种修改标记):
正常文本
   通过指定GUI_TEXTMODE_NORMAL 或0 ,可以正常显示文本。
反转文本
   通过指定GUI_TEXTMODE_REV,可以反转显示文本。通常的黑底白字显示方式将变为白底黑字显示。
透明文本
   通过指定GUI_TEXTMODE_TRANS,可以显示为透明文本。透明文本表示文本写在屏幕上已经可见的
内容之上。不同之处在于,屏幕上原有的内容仍然可见,而在正常文本中,背景会替换为当前选择的
背景色。
异或文本
   通过指定GUI_TEXTMODE_XOR,可以使用异或模式显示文本。通常情况下,用白色绘制的(实
际字符)显示是反相的。如果背景色是黑色,效果与默认模式(正常文本)是一样的。如果背景是白
色,输出与反转文本一样。如果使用彩色,反相的像素由下式计算:
新像素颜色= 颜色的值– 实际像素颜色–1。
透明反转文本
   通过指定GUI_TEXTMODE_TRANS | GUI_TEXTMODE_REV,可以显示为透明反转文本。与透明文
本一样,它不会覆盖背景,而且和反转文本一样,该文本会反转显示。
其他信息
请注意,还可以使用缩写形式:例如,GUI_TM_NORMAL
示例
显示正常、反转、透明、异或以及透明反转文本:
  GUI_SetFont(&GUI_Font8x16);
  GUI_SetBkColor(GUI_BLUE);
  GUI_Clear();
  GUI_SetPenSize(10);
  GUI_SetColor(GUI_RED);
  GUI_DrawLine(80, 10, 240, 90);
  GUI_DrawLine(80, 90, 240, 10);
  GUI_SetBkColor(GUI_BLACK);
  GUI_SetColor(GUI_WHITE);
  GUI_SetTextMode(GUI_TM_NORMAL);
  GUI_DispStringHCenterAt("GUI_TM_NORMAL"         , 160, 10);
  GUI_SetTextMode(GUI_TM_REV);
  GUI_DispStringHCenterAt("GUI_TM_REV"               , 160, 26);
  GUI_SetTextMode(GUI_TM_TRANS);
  GUI_DispStringHCenterAt("GUI_TM_TRANS"             , 160, 42);
  GUI_SetTextMode(GUI_TM_XOR);
  GUI_DispStringHCenterAt("GUI_TM_XOR"               , 160, 58);
  GUI_SetTextMode(GUI_TM_TRANS | GUI_TM_REV);
  GUI_DispStringHCenterAt("GUI_TM_TRANS | GUI_TM_REV", 160, 74);

下面是上面的程序,显示效果,对于这四种文本显示模式要掌握。
2.png

三、 uCGUIBulder4.0建立对话框,并作一个文本显示
(1) uCGUIBulder的使用方法,这里就不再说了,不懂的请看使用说明
(2)创建一个对话框就可以了,设置320*240,其它的对话框属性可以尝试随便设置下。
(3)设置好以后,不需要编译运行,直接将Codes中的代码复制到VC6.0模拟器里面,具体复
         制到什么位置看第一期。

3.png
四、 VC6.0模拟器中运行代码
(1)复制到VC里面以后,只需修改这个地方

/*****************************************************************
**      FunctionName:void PaintDialog(WM_MESSAGE * pMsg)
**      Function: to initialize the Dialog items
**                                                      
**      call this function in _cbCallback --> WM_PAINT
*****************************************************************/

void PaintDialog(WM_MESSAGE * pMsg)
{
    WM_HWIN hWin = pMsg->hWin;

}

将如下的代码添加到这个回调函数中重绘的部分

void PaintDialog(WM_MESSAGE * pMsg)
{
    WM_HWIN hWin = pMsg->hWin;
//设置字体
    GUI_SetFont(&GUI_Font8x16);
//设置背景颜色
    GUI_SetBkColor(GUI_BLUE);
//设置背景颜色以后需要清屏指令才能有效,切记
    GUI_Clear();
//设置笔画的粗细
    GUI_SetPenSize(10);
//设置当前前景颜色
    GUI_SetColor(GUI_RED);
//画线
    GUI_DrawLine(80, 10, 240, 90);
    GUI_DrawLine(80, 90, 240, 10);
//重新设置背景颜色和前景色
    GUI_SetBkColor(GUI_BLACK);
    GUI_SetColor(GUI_WHITE);
//下面分别设置四种文本模式进行显示
    GUI_SetTextMode(GUI_TM_NORMAL);
    GUI_DispStringHCenterAt("GUI_TM_NORMAL"            , 160, 10);

    GUI_SetTextMode(GUI_TM_REV);
    GUI_DispStringHCenterAt("GUI_TM_REV"               , 160, 26);

    GUI_SetTextMode(GUI_TM_TRANS);
    GUI_DispStringHCenterAt("GUI_TM_TRANS"             , 160, 42);

    GUI_SetTextMode(GUI_TM_XOR);
    GUI_DispStringHCenterAt("GUI_TM_XOR"               , 160, 58);

    GUI_SetTextMode(GUI_TM_TRANS | GUI_TM_REV);
    GUI_DispStringHCenterAt("GUI_TM_TRANS | GUI_TM_REV", 160, 74);
}

其它部分不需要修改,编译运行就可以

实际显示效果
4.png













回复

使用道具 举报

发表于 2013-5-19 15:44:13 | 显示全部楼层
第二期,那么快
回复 支持 反对

使用道具 举报

发表于 2013-5-19 20:51:08 | 显示全部楼层
继续第二课,走起。
回复 支持 反对

使用道具 举报

发表于 2013-5-19 21:33:50 | 显示全部楼层
悄悄地来听课
回复 支持 反对

使用道具 举报

发表于 2013-5-24 21:22:57 | 显示全部楼层
终于有第二起了!!
回复 支持 反对

使用道具 举报

发表于 2013-5-25 09:43:40 | 显示全部楼层
我想设计一个用户界面,但不知道嵌套界面怎么搞。我现在用的是ucGUI,但在液晶屏上显示效果不怎么好。emWin显示效果不错,求大师介绍移植方法。谢了!
回复 支持 反对

使用道具 举报

发表于 2013-5-25 12:52:42 | 显示全部楼层
又来了         
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-5-25 14:05:13 | 显示全部楼层
隔海阳台 发表于 2013-5-25 09:43
我想设计一个用户界面,但不知道嵌套界面怎么搞。我现在用的是ucGUI,但在液晶屏上显示效果不怎么好。emWin ...

http://www.amobbs.com/thread-5515581-1-1.html
回复 支持 反对

使用道具 举报

发表于 2013-5-25 19:17:11 | 显示全部楼层
竟然这么快啊
回复 支持 反对

使用道具 举报

发表于 2013-5-27 09:50:56 | 显示全部楼层
好教材~~~~~~~~
回复 支持 反对

使用道具 举报

发表于 2013-5-29 08:40:45 | 显示全部楼层
学习中,谢谢你的教程
回复 支持 反对

使用道具 举报

发表于 2013-5-31 22:40:36 | 显示全部楼层
顶起!!!!!!!!!!!!!
回复 支持 反对

使用道具 举报

发表于 2013-6-1 15:15:15 | 显示全部楼层
good work
回复 支持 反对

使用道具 举报

发表于 2013-6-4 13:17:49 | 显示全部楼层
经过,学习。
回复 支持 反对

使用道具 举报

发表于 2013-6-4 16:38:13 | 显示全部楼层
ding顶~~~~~~~~~~~
回复 支持 反对

使用道具 举报

发表于 2013-6-5 20:41:13 | 显示全部楼层
一直没弄懂,ucgui和emWin5.20有啥关系,以前只知道ucgui,最近才知道emWin
回复 支持 反对

使用道具 举报

发表于 2013-6-5 21:15:52 | 显示全部楼层
22222
回复 支持 反对

使用道具 举报

发表于 2013-6-8 23:15:27 | 显示全部楼层
you yao fa tie la.
回复 支持 反对

使用道具 举报

发表于 2013-6-16 13:42:11 | 显示全部楼层
太棒了,感谢楼主
回复 支持 反对

使用道具 举报

发表于 2013-6-25 15:59:52 | 显示全部楼层
学习太棒了,非常感谢
回复 支持 反对

使用道具 举报

发表于 2013-6-26 11:49:26 | 显示全部楼层
期待呀,过来看看~~~
回复 支持 反对

使用道具 举报

发表于 2013-6-28 14:42:50 | 显示全部楼层
要 看看~~~~
回复 支持 反对

使用道具 举报

发表于 2013-6-28 14:43:07 | 显示全部楼层
要 看看~~~~呵呵 ~~~
回复 支持 反对

使用道具 举报

发表于 2013-6-28 18:42:18 | 显示全部楼层
漂亮~太棒了,非常感谢哈哈!太好笑了.拿分走人呵呵,楼下继续!
回复 支持 反对

使用道具 举报

发表于 2013-6-30 11:50:00 | 显示全部楼层
学习,感谢分享,,
回复 支持 反对

使用道具 举报

发表于 2013-7-2 10:04:08 | 显示全部楼层
太棒了,非常感谢
回复 支持 反对

使用道具 举报

发表于 2013-7-5 14:41:55 | 显示全部楼层
支持下。。。
回复 支持 反对

使用道具 举报

发表于 2013-7-8 11:29:43 | 显示全部楼层
先看看再说。
回复 支持 反对

使用道具 举报

发表于 2013-7-9 10:04:33 | 显示全部楼层
kankan太棒了,非常感谢
回复 支持 反对

使用道具 举报

发表于 2013-7-9 18:14:13 | 显示全部楼层
学习一下,看看。
回复 支持 反对

使用道具 举报

发表于 2013-7-9 18:16:58 | 显示全部楼层
太棒了,非常感谢 看看谢谢
回复 支持 反对

使用道具 举报

发表于 2013-7-10 13:29:40 | 显示全部楼层
太好了!太好了!太好了!太好了!太好了!太好了!太好了!太好了!太好了!太好了!太好了!
回复 支持 反对

使用道具 举报

发表于 2013-7-11 01:07:35 | 显示全部楼层
拿分走人呵呵,楼下继续!
回复 支持 反对

使用道具 举报

发表于 2013-7-11 10:06:14 | 显示全部楼层
沙发~支持楼主
回复 支持 反对

使用道具 举报

发表于 2013-7-16 14:01:23 | 显示全部楼层
好教材
回复 支持 反对

使用道具 举报

发表于 2013-7-20 17:26:20 | 显示全部楼层
正在学习真好
回复 支持 反对

使用道具 举报

发表于 2013-7-20 20:06:37 | 显示全部楼层
太棒了,非常感谢
回复 支持 反对

使用道具 举报

发表于 2013-7-20 20:07:01 | 显示全部楼层
太棒了,非常感谢
回复 支持 反对

使用道具 举报

发表于 2013-7-21 16:40:24 | 显示全部楼层
看一看看一看看一看看一看
回复 支持 反对

使用道具 举报

发表于 2013-7-21 20:39:01 | 显示全部楼层
好资料啊,看看
回复 支持 反对

使用道具 举报

发表于 2013-7-22 11:57:55 | 显示全部楼层
不错。支持,顶。太棒了,非常感谢
回复 支持 反对

使用道具 举报

发表于 2013-7-25 13:16:58 | 显示全部楼层
太棒了,非常感谢看看
回复 支持 反对

使用道具 举报

发表于 2013-7-25 20:40:20 | 显示全部楼层
学习太棒了,非常感谢
回复 支持 反对

使用道具 举报

发表于 2013-7-26 06:20:15 | 显示全部楼层
學習一下,謝謝了
回复 支持 反对

使用道具 举报

发表于 2013-7-27 16:38:26 | 显示全部楼层
下载看看啊啊啊
回复 支持 反对

使用道具 举报

发表于 2013-7-27 16:39:04 | 显示全部楼层
下载看看啊啊啊
回复 支持 反对

使用道具 举报

发表于 2013-7-29 11:14:31 | 显示全部楼层
太棒了,非常感谢这是做什么的
回复 支持 反对

使用道具 举报

发表于 2013-7-29 11:15:06 | 显示全部楼层
太棒了,非常感谢这是做什么用的
回复 支持 反对

使用道具 举报

发表于 2013-7-29 16:20:51 | 显示全部楼层
太棒了,非常感谢
回复 支持 反对

使用道具 举报

发表于 2013-8-1 09:08:41 | 显示全部楼层
太棒了,非常感谢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-8 05:41 , Processed in 0.043666 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表