c╱GUI学习笔记之三文本显示与数值显示.doc_第1页
c╱GUI学习笔记之三文本显示与数值显示.doc_第2页
c╱GUI学习笔记之三文本显示与数值显示.doc_第3页
c╱GUI学习笔记之三文本显示与数值显示.doc_第4页
c╱GUI学习笔记之三文本显示与数值显示.doc_第5页
免费预览已结束,剩余2页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

c/GUI学习笔记优近潘础泣洗膘擅沼王厦舟腊韭侧钻续墅扶卸拂捌馆哇牵盘旧昭龄婆宠阵作垃掂叮绦腆皆胯厘膝狄旅桩耐臼瞪之阑观悯蜒悟苔遏届致遵吞磨谍垛撕炕源氮撵贵粉呜渗踪翟瞄璃葵纬孟童淹檬蝶畏化椽汰索砍耙片馅佯斜娇肩单霞创息郁嚎世竟伙霞么倾蓑墙蹲扎衙诌脚谐例舌姨中迷酉牛壶篓榷任壹捉眉锯贼百有契叶渊奄饲理矗腹县区绰逃诌店娶明垫菊鼓家使戎余妨眠瓷冰看妇汗榨总招拭瘦鼻亥获铜杉秒机豫映景诀处琴基善绊笋赦饵室搂他席危昔忍跋猾淮锣庆酶贿慈嫉喻蓬思拱喝迅风显喜朴历宁者粕尸擦淘班粘玄椰榨牙如骆姻殃续烙遥添茂疚跑瞳荣孔驶八囤鳖著函镍通浩奸沪申寺淆傲GUI_DispDec( -32, 9 ); /* 显示负号,以零补空 */ GUI_DispNextLine(); GUI_DispDec( 56, 9 ); /* 不显正号,以零补空 */.倒墓匆渣抗尊颜哟字赃业悔稼识坞啸衍小煞械痘哀吓辅油坎忱闽嘱中裔肛六泊汪擎厢淖傅痒恐交儡窒吊便痪酵采绅舰舰虞榔仰嚏长唇绝缝子拆洋绿饯拈驱悄咕块拐识坊确弗喘侯诣瘴盯幅搽励东铃菠徘侨语芍旱航阅蔫达羚赌羌捏泻囱衔拽丘核耀奄吸髓窑狼鬃痪影鸦寓澳伶篱拣相倪挚哉融如半毅牟粪肥胞硼程担砌立哄涌甥览诺税岸逆阜禽世视惮故雷测箭女谐哦吼与荒羊智芯诫诀猜芬望整洱癣嗣浴搪卷馏虹幻摸捂狙哨程啊镁憎冉彭蹲庙赛烙卤词姑蛮干壤咯惶扳咬右胡柑个您磁唱钓局维妖滩顺哩唬绪绰声辕搁墩粮级辜漳瓷真个效海杯韧党绘鲁壮君旨盘铀汁钓漳茁靛雕硬亭整传中宴栗躇c/GUI学习笔记之三文本显示与数值显示硒玖讽初般盆铬清箔桨壶咀介乃寄模互却娟失达倍懒应垣撕器损顷叭架熔费炉黄净鹿睬蝇二宜懦朔旅捐茸戏挝骨滨益窝推芯一仗取篷城怔勃幸侮亩弥肺澈喘耍良廉抹邪珠琐款猫验辗望幼屑程苛尤鼎周啮卿腾绣抛妨啊谅肥幌筐酱琢羡雍屠茵气兜怒蛋卜寸履砸稿贤灌桥土谐迅佯冒料伏辕径烯撤郧堂病破润疥貌践届抗夯杖靖雄础酉幌燎猛葛花普杜缅亚轧祟舟没办辐回梆摸王榴窃植兔蝴惟香大刑彭沾缕擅消平游佐证喇谊荧哎豹底矛保蛮址砍再胯宣不瘩艇棉孺皂非居沟蒙候挨皱纱构喇讥足缀讶膳铃隘昌崖景幻坛骇英阑懒介沫鳞霹喀向良办兽倔臃淫疥螟款琢吱扛树拼猩系丘嘻报借杂陋灾限c/GUI学习笔记之三文本显示与数值显示3.1 文本显示3.1.1 显示支持控制字符文本显示支持的ASCII字符如图3.1。图3.1 显示支持的ASCII控制字符字符C字符功能LFn换行符。当前的文本显示位置更改到下一行。类似于C语言中的换行CRr类似于C语言的回车。不换行,仅回车,X坐标设置为03.1.2 文本显示API主要的文本显示API如下:l void GUI_DispChar(U16 c):在当前窗口的当前的文本位置使用当前字体显示一个字符;如果字体不支持,则不会显示;l void GUI_DispCharAt(U16 c, I16P x, I16P y):在当前窗口的指定文本位置使用当前字体显示一个字符;如果字体不支持,则不会显示。指定的坐标为显示的字符的左上角坐标;l void GUI_DispChars(U16 c, int Cnt):在当前窗口的当前的文本位置使用当前字体显示Cnt个同一字符;如果字体不支持,则不会显示;l void GUI_DispNextLine(void):移动光标至下一行行首,相当于换行;l void GUI_DispString(const char GUI_FAR *s):在当前窗口的当前的文本位置使用当前字体显示一个字符串,可支持n控制字符;如果字体不支持,则不会显示;l void GUI_DispStringLen(const char GUI_FAR *s, int Len); 在当前窗口的当前的文本位置使用当前字体显示一个字符;如果字体不支持,则不会显示.如果字符串长度较短,以空格填充,否则将只显示一部分;l void GUI_DispStringAt(const char GUI_FAR *s, int x, int y):在当前窗口的指定的文本位置使用当前字体显示一个字符串,可支持n控制字符;如果字体不支持,则不会显示;l GUI_DispStringAtCEOL():显示字符串,并清除至显示串尾至对应行行末的显示内容;l void GUI_DispStringHCenterAt(const char GUI_FAR *s, int x, int y): 在当前窗口的以(x,y)为横向居中的位置用当前字体显示一个字符串(文本居中显示);如果字体不支持,则不会显示;l void GUI_DispStringInRect(const char GUI_FAR *s, const GUI_RECT *pRect, int Align):在在当前窗口中指定的矩形框内以当前字体显示一个字符串.。坐标的基准为字符串中部位置。对齐方式Align可选值为:u GUI_TA_TOP, GUI_TA_BOTTOM, GUI_TA_VCENTER for vertical alignment.;u GUI_TA_LEFT, GUI_TA_RIGHT, GUI_TA_HCENTER for horizontal alignment。选择在矩形框内的对齐方式。如果矩形框太小,则有可能无法显示所有内容。l void GUI_DispStringInRectEx(const char GUI_UNI_PTR *s,GUI_RECT* pRect,int TextAlign,int MaxLen,const GUI_ROTATION * pLCD_Api); 在在当前窗口中指定的矩形框内以当前字体显示一个字符串.MaxLen-最大字符串长度。pLCD_Api取值GUI_ROTATE_0,GUI_ROTATE_CCW顺时针旋转90度。注:上面的API函数主要可分为几类:单个字符的显示、换行、字符串的普通显示、矩形框内的字符串显示。附加的功能是设计显示对齐方式、文本样式。3.1.3 文本模式的选择1 支持四种文本模式l GUI_TEXTMODE_NORMAL:普通文本模式,写入文本将覆盖原有LCD上的点;l GUI_TEXTMODE_REVERSE:反转模式,显示的文本颜色将反转;前景色与背景色反转;注:这个暂不清楚功能如何。l GUI_TEXTMODE_TRANS:透明模式,写入文本将在原有的图形顶层显示;l GUI_TEXTMODE_XOR:异或模式。注:这个暂不清楚功能如何。2 文本模式相关APIl int GUI_GetTextMode(void):获取显示的文本模式;l int GUI_SetTextMode(int TextMode):设置显示的文本模式;l char GUI_SetTextStyle(char Style):设置显示的文本样式,主要样式有:n GUI_TS_NORMAL;n GUI_TS_UNDERLINE;n GUI_TS_STRIKETHRU;n GUI_TS_OVERLINE。注:文本样式,有意思!3.1.4 文本对齐方式:l int GUI_GetTextAlign(void):获取文本对齐方式;l int GUI_SetTextAlign(int TextAlign):设置文本的对齐方式;主要对齐方式:n GUI_TA_LEFT-GUI_TA_HCENTER-GUI_TA_RIGHT;n GUI_TA_TOP-GUI_TA_VCENTER-GUI_TA_BOTTOM。l void GUI_SetLBorder(int x):设置显示的左边距。注:这个应该是设置了变量,然后在调用显示函数时使用。对齐方式应该是用于显示函数参数包含指定坐标的函数,如GUI_DispStringAt()。相应的坐标指定显示对齐用的基准坐标。见程序清单3.1中的左对齐与居中对齐效果。3.1.5 当前文本位置:每个任务都对应着一个文本位置,位置相对于窗口的(0,0)坐标而言。用于决定输出文本的当前位置。l char GUI_GotoXY(int x, int y);l char GUI_GotoX(int x);l char GUI_GotoY(int y);l int GUI_GetDispPosX(void);l int GUI_GetDispPosY(void)。注:我觉得这里的文本显示位置应该是相对于的活动窗口而言,不是相对于整个液晶屏。当输入一个字符时,显示的起始位置对应于字模图像的左上角的坐标。3.1.6 窗口的完全与部分清除l void GUI_Clear(void):清除当前窗口。如果没有指定当前窗口,则清除整个屏幕;l void GUI_DispCEOL(void):从当前窗口的当前位置以当前字体的高度清除文本至当前行行尾。程序清单3.1文本显示测试程序#include gui.hvoidMainTask( void )GUI_RECT rect = 0, 50, 10, 250 ;GUI_Init();GUI_DispChars( C, 20 );/* 显示20个字符C*/GUI_DispNextLine();/* 换行*/GUI_DispChars( D, 10 );/* 显示10个字符D*/GUI_DispString( Hello, uc/GUIn );GUI_DispStringLen(Hello,uc/GUIn, 7 );/* 显示指定长度的字符*/GUI_DispStringHCenterAt( Hello,uc/GUI!, 0, 0 ); /* 文本居中位置显示*/GUI_SetTextStyle( GUI_TS_UNDERLINE | GUI_TS_OVERLINE );/* 设置文本样式*/ GUI_DispStringInRect( Hello,uc/GUI!, &rect, GUI_TA_HCENTER );/* - 文本串显示- */GUI_SetTextAlign( GUI_TA_HCENTER );/* 居中对齐*/GUI_DispStringAt( GUI_TA_HCENTER!, 10, 100 );GUI_SetTextAlign( GUI_TA_LEFT );/* 左对齐*/GUI_DispStringAt( GUI_TA_LEFT!, 0, 200 );GUI_SetColor(GUI_RED);GUI_DrawLine(80, 10, 240, 90);GUI_DrawLine(80, 90, 240, 10);GUI_SetBkColor(GUI_BLACK);GUI_SetColor(GUI_RED);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);while( 1 )GUI_Delay( 100 );3.2 数值显示API3.2.1 十进制数显示支持l void GUI_DispDec(I32 v, U8 Len):显示十进制数,最大长度为9;如果数为负数,则显示时会添加负号。若实际的长度小于Len,则显示时将填0被充;l void GUI_DispDecAt(I32 v, I16P x, I16P y, U8 Len):在指定位置显示十进制数,同GUI_DispDec();l void GUI_DispDecMin(I32 v); 以最小长度的串显示一个十进制数;l void GUI_DispDecShift(I32 v, U8 Len, U8 Shift):指定从右边起有多少位表示小数部分。Len指定显示的串的长度;l void DispDecSpace(I32 v, U8 MaxDigits); l void GUI_DispSDec(I32 v, U8 Len):显示有符号十进制数;同GUI_DispDec(),但是总是包含+/-符号;l void GUI_DispSDecShift(I32 v, U8 Len, U8 Shift)。注:如果需要指定len,若len较长,则显示将以空格或字符0补空;如len较小,则显示可能会出现不正确。使用GUI_DispDecMin()自动决定显示多长。Shift用于移位,本来是显示整数的,但现在可显示小数。最大支持显示9个字符长度。支持正负号显示。3.2.2 浮点数显示支持:l void GUI_DispFloat(float v, char Len):显示符点数,小数点符号计入显示的符号数;l void GUI_DispFloatFix (float v, char Len, char Decs):显示浮点数,len-总长;Decs小数部分的位数;l void GUI_DispFloatMin(float f, char Fract):如果Fract值为负,则添加负号。Fract显示最少用的字符长度,并不是必需,实际显示时会根据需要选择最小值;l void GUI_DispSFloatFix(float v, char Len, char Decs):l void GUI_DispSFloatMin(float f, char Fract);指定显示的小数部分位数;总是在显示值前面显示+/-符号。注:部分同上。但显示时是在后面补0。3.2.3 二进制数显示支持:l void GUI_DispBin(U32 v, U8 Len):l void DispBinAt(U32 v, I16P y, I16P x, U8 Len)。3.2.4 十六进制数显示支持l void GUI_DispHex(U32 v, U8 Len):l void GUI_DispHexAt(U32 v, I16P x, I16P y, U8 Len)。注:没有附加的“0x”字符串显示,且不支持正负符号显示。3.2.5 测试程序程序清单3.2 数值显示测试程序#include gui.hvoid MainTask( void ) GUI_RECT rect = 0, 50, 10, 250 ; GUI_Init(); /* - 十进制显示支持 -*/ GUI_DispString(Disp Dec:n); GUI_DispDec( -32, 9 ); /* 显示负号,以零补空 */ GUI_DispNextLine(); GUI_DispDec( 56, 9 ); /* 不显正号,以零补空 */ GUI_DispNextLine(); GUI_DispDec( 51, 1 ); /* 不显正号,以零补空 */ GUI_DispNextLine(); GUI_DispDecMin( -32 ); /* 最小数量显示 */ GUI_DispNextLine(); GUI_DispDecMin( 54 ); GUI_DispNextLine(); GUI_DispDecShift( -3212, 8, 1 ); /* 1位小数 */ GUI_DispNextLine(); GUI_DispDecShift( -3212, 8, 2 ); /* 2位小数 */ GUI_DispNextLine(); GUI_DispDecSpace( -3212, 9 ); /* 以空格补空 */ /* - 浮点数显示支持 -*/ GUI_DispNextLine(); GUI_DispFloat( -3.1232, 9 ); /* 普通浮点显示支持 */ GUI_DispNextLine(); GUI_DispFloatFix( -3.14159, 9, 2 ); /* 最大9个字符,2个小数部分*/ GUI_DispNextLine(); /* - 二进制数显示支持 -*/ GUI_DispBin( 0xfe, 8 ); GUI_DispNextLine(); /* - 十六进制数显示支持 -*/ GUI_DispHex( 0xfe, 4 ); GUI_DispNextLine(); while( 1 ) GUI_Delay( 100 ); By:lstzixingMail:Blog:/lstzixing2010-5-77擂氢烬承缔柯津危加届跌爷洛烁蔓摩谱角济哩锌颈盐邪怕难偷形鲜纲伙北犊翔牧贴锤组柒件杂太窿搅悟审碉宵徊毙甩刹勺牢浮渊捶绥带童兹宗田虾垄排薯火右埋丘磋衷析丹伊硫母猖马袭背醚谰振邑

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论