大学生
最后登录1970-1-1
在线时间 小时
注册时间2013-5-1
|
说明: (野火团队原创教程,未经许可禁止转载)
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 忽略了下
表所列字符以外的所有控制字符
(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);
下面是上面的程序,显示效果,对于这四种文本显示模式要掌握。
三、 uCGUIBulder4.0建立对话框,并作一个文本显示
(1) uCGUIBulder的使用方法,这里就不再说了,不懂的请看使用说明
(2)创建一个对话框就可以了,设置320*240,其它的对话框属性可以尝试随便设置下。
(3)设置好以后,不需要编译运行,直接将Codes中的代码复制到VC6.0模拟器里面,具体复
制到什么位置看第一期。
四、 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);
}
其它部分不需要修改,编译运行就可以
实际显示效果
|
|