野火stm32-05、學(xué)習(xí)unlock第04章文本顯示_第1頁
野火stm32-05、學(xué)習(xí)unlock第04章文本顯示_第2頁
野火stm32-05、學(xué)習(xí)unlock第04章文本顯示_第3頁
野火stm32-05、學(xué)習(xí)unlock第04章文本顯示_第4頁
野火stm32-05、學(xué)習(xí)unlock第04章文本顯示_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第4章 文本顯示使用C/GUI 顯示字體是很容易的。僅僅需要很少的的函數(shù)知識(shí)就能讓在任何有效的字體當(dāng)中進(jìn)行文本書字,然后顯示在任何一個(gè)位置。然后是分別對(duì)所用的函數(shù)進(jìn)行更詳細(xì)的說明。首先對(duì)顯示字體進(jìn)行簡(jiǎn)短的介紹,第 1 頁C/GUI 中文手冊(cè)第 4 章 文本顯示4.1 基本函數(shù)為了在LCD上顯示文本,可以簡(jiǎn)單地調(diào)用函數(shù)GUI_DispString(),作為其參數(shù),例如:所希望顯示的文本GUI_DispString(o world!);上面的代碼將會(huì)在當(dāng)前文本坐標(biāo)顯示文本“o world!”。然而,正如你所看到的,有很多函數(shù)用于顯示不同字體的文本或都在不同的坐標(biāo)顯示文本。另外,它不僅能寫字符串,而

2、且能寫十進(jìn)制數(shù),進(jìn)制數(shù)和二進(jìn)制數(shù)用于顯示。即使圖形顯示通常是以字節(jié)位。,文本能夠定位在顯示屏上的任何像素上,不僅僅是按字節(jié)定控制字符控制字符是一個(gè)小于32的字符代碼??刂谱址欢x為ASCII碼的一部分。C/GUI忽略所有除了下表所列出的以外的控制字符:控制字符LF的用法在字符串中非常方便。換行能將一個(gè)字符串拆開幾部分,這樣,只需要調(diào)用一個(gè)函數(shù)就能將這個(gè)字符串就能變成幾行顯示。在一個(gè)選定坐標(biāo)放置文本這個(gè)功能可能通過調(diào)用函數(shù)GUI_GotoXY()來實(shí)現(xiàn),如下面例子所示:GUI_GotoXY(10,10);GUI_DispString(/ 設(shè)置坐標(biāo)(以像素為/ 顯示文本)o world!);4.

3、2 文本API下表列出了與文本處理相關(guān)的函數(shù),在各自的類型中按字母順序進(jìn)行排列。函數(shù)的詳細(xì)第 2 頁C/GUI 中文手冊(cè)字符代碼ASCII代碼“C”含義10LFn換行,改變當(dāng)前文本坐標(biāo)到下一行,即:X=0;Y += 字體-距離(:像素)(如函數(shù) GUI_GetFontDistY()所的那樣)13CRr回車,改變當(dāng)前文本坐標(biāo)到當(dāng)前行的開始處,即:x=0第 4 章 文本顯示描述后面列出。4.3 顯示文本的函數(shù)GUI_DispChar()描述在當(dāng)前視窗使用當(dāng)前字體在當(dāng)前文本坐標(biāo)處顯示單個(gè)字符。函數(shù)原型C/GUI 中文手冊(cè)第 3 頁函 數(shù)說 明顯示文本的函數(shù)GUI_DispChar()在當(dāng)前坐標(biāo)顯示單

4、個(gè)字符GUI_DispCharAt()在指定坐標(biāo)顯示單個(gè)字符GUI_DispChars()按指定重復(fù)次數(shù)顯示一個(gè)字符GUI_DispString()在當(dāng)前坐標(biāo)顯示字符串GUI_DispStringAt()在指定坐標(biāo)顯示字符串GUI_DispStringAtCEOL()在指定坐標(biāo)顯示字符串,并清除到行末GUI_DispStringInRect()在指定矩形區(qū)域內(nèi)顯示字符串GUI_DispStringLen()在當(dāng)前坐標(biāo)顯示指定字符數(shù)量的字符串選擇文本繪圖模式GUI_SetTextMode()設(shè)置文本繪圖模式選擇文本對(duì)齊方式GUI_GetTextAlign()返回當(dāng)前文本對(duì)齊模式GUI_SetLB

5、order()設(shè)置換行后的左邊界GUI_ SetTextAlign()設(shè)置文本對(duì)齊模式設(shè)置當(dāng)前文本坐標(biāo)GUI_GotoX()設(shè)置當(dāng)前X坐標(biāo)GUI_GotoXY()設(shè)置當(dāng)前X、Y坐標(biāo)GUI_GotoY()設(shè)置當(dāng)前Y坐標(biāo)找回當(dāng)前文本坐標(biāo)GUI_GetDispX()返回當(dāng)前X坐標(biāo)GUI_GetDispY()返回當(dāng)前Y坐標(biāo)清除視窗或其部分的函數(shù)GUI_Clear()清除活動(dòng)視窗(如果背景是活動(dòng)視窗,則是清除整個(gè)屏幕)GUI_DispCEOL()清除從當(dāng)前坐標(biāo)到行末的顯示內(nèi)容第 4 章 文本顯示void GUI_DispChar(U16 c);附加信息這是顯示字符的基本函數(shù)。所有其它顯示函數(shù)(GUI_D

6、ispCharAt(),GUI_DispString()等)都要調(diào)用這個(gè)函數(shù)輸出單個(gè)字符。字符是否有效取決于所選擇的字體,如果在當(dāng)前字體中該字符無效,則不會(huì)有任何顯示。范例在屏幕上顯示一個(gè)大寫“A”:GUI_DispChar(A);相關(guān)GUI_DispChars(),GUI_DispCharAt()GUI_DispCharAt()描述在當(dāng)前視窗使用當(dāng)前字體在指定坐標(biāo)處顯示單個(gè)字符。函數(shù)原型void GUI_DispCharAt(U16 c, I16P x, I16P y);附加信息顯示字符的左上角在指定的(X,Y)坐標(biāo)。使用函數(shù)GUI_DispChar()寫字符。第 4 頁C/GUI 中文手冊(cè)

7、參數(shù)含意c顯示的字符x寫到客戶窗口經(jīng)X軸坐標(biāo)(以像素為)y寫到客戶窗口經(jīng)Y軸坐標(biāo)(以像素為)參數(shù)含意c顯示的字符第 4 章 文本顯示如果在當(dāng)前字體中該字符無效,則不會(huì)有任何顯示。范例在屏幕左上角顯示一個(gè)大寫“A”:GUI_DispCharAt(A,0,0);相關(guān)GUI_DispChar(),GUI_DispChars()GUI_DispChars()描述在當(dāng)前視窗使用當(dāng)前字體在當(dāng)前文本坐標(biāo)顯示一個(gè)字符,并指定重復(fù)顯示的次數(shù)。函數(shù)原型void GUI_DispChars(U16 c,Cnt);附加信息使用函數(shù)GUI_DispChar()寫字符。如果在當(dāng)前字體中該字符無效,則不會(huì)有任何顯示。范例在

8、屏幕上顯示一行“*”:GUI_DispChars(*, 30);相關(guān)GUI_DispChar(),GUI_DispCharAt()C/GUI 中文手冊(cè)第 5 頁參數(shù)含意c顯示的字符Cnt重復(fù)的次數(shù)(0Cnt32767)第 4 章 文本顯示GUI_DispString()描述在當(dāng)前視窗的當(dāng)前坐標(biāo),使用當(dāng)前字體顯示作為參數(shù)的字符串。函數(shù)原型void GUI_DispString(const char GUI_FAR *s);附加信息字符串包括控制字符“n”。該控制字符把當(dāng)前文本坐標(biāo)移到下一行的開始處。范例在屏幕上顯示“o world”及在下一行顯示“Next line”:GUI_DispStrin

9、g(o world);/ 顯示文本/ 顯示文本GUI_DispString(nNext line);相關(guān)GUI_DispStringAt(),GUI_DispStringAtCEOL(),GUI_DispStringLen()GUI_DispStringAt()描述在當(dāng)前視窗,使用當(dāng)前字體在指定坐標(biāo)顯示作為參數(shù)的字符串。函數(shù)原型void GUI_DispStringAt(const char GUI_FAR *s,x,y);第 6 頁C/GUI 中文手冊(cè)參數(shù)含意s顯示的字符串x寫到客戶視窗的X軸坐標(biāo)(以像素為)參數(shù)含意s顯示的字符串第 4 章 文本顯示范例在屏幕上坐標(biāo)(50,20)處顯示“it

10、ion 50,20”GUI_DispStringAt(ition 50,20, 50, 20);/ 顯示文本相關(guān)GUI_DispString(),GUI_DispStringAtCEOL(),GUI_DispStringLen()GUI_DispStringAtCEOL()描述該函數(shù)使用的參數(shù)與GUI_DispStringAt()完全一致。它也執(zhí)行同樣的操作:在指定坐標(biāo)顯示所給出的字符串。但是,完成這步操作后,它會(huì)調(diào)用GUI_DispCEOL函數(shù)清除本行剩下部分內(nèi)容直至行末。如果字符串覆蓋了其它的字符串,同時(shí)該字符串長(zhǎng)度比原先的字符串短的時(shí)候,使用該函數(shù)就會(huì)很方便。GUI_DispString

11、InRect()描述在當(dāng)前視窗,使用當(dāng)前字體在指定坐標(biāo)顯示作為參數(shù)的字符串。函數(shù)原型void GUI_DispStringInRect ( const char GUI_FAR *s,const GUI_RECT *pRect, Align);范例C/GUI 中文手冊(cè)第 7 頁參數(shù)含意s顯示的字符串pRect寫像素的客戶窗口的矩形區(qū)域Align垂直對(duì)齊:GUI_TA_TOP,GUI_TA_BOTTOM,GUI_TA_VCENTER;水平對(duì)齊:GUI_TA_LEFT,GUI_TA_RIGHT,GUI_TA_HCENTER;y寫到客戶視窗的Y軸坐標(biāo)(以像素為)第 4 章 文本顯示在當(dāng)前視窗的水平及

12、垂直對(duì)中的坐標(biāo)顯示字“Text”:GUI_RECT rCnt;GUI_GetCntRect(&rCnt);GUI_DispStringInRect(Text, &rCnt, GUI_TA_HCENTER | GUI_TA_VCENTER);附加信息如果指定的矩形太小,文本會(huì)被裁剪。相關(guān)GUI_DispString(),GUI_DispStringAtCEOL(),GUI_DispStringLen()GUI_DispStringLen()描述在當(dāng)前視窗,使用當(dāng)前字體在指定坐標(biāo)顯示作為參數(shù)的字符串,指定顯示字符的數(shù)量。函數(shù)原型void GUI_DispStringLen(const char G

13、UI_FAR *s,Len);附加信息如果字符串的字符少于指定的數(shù)量,則用空格填滿。如果多于指定的數(shù)量,則顯會(huì)顯示指定數(shù)量的字符。文本信息可能以不同語言顯示(自然長(zhǎng)度會(huì)不一樣)時(shí),該函數(shù)十分有用,但是只有某些字符能夠顯示。相關(guān)GUI_DispString(),GUI_DispStringAt(),GUI_DispStringAtCEOL()第 8 頁C/GUI 中文手冊(cè)參數(shù)含意s顯示的字符串,應(yīng)該以一個(gè)“0”作為8位字符排列的結(jié)束標(biāo)記。允許用NULL作為參數(shù)。Len顯示的字符數(shù)量第 4 章 文本顯示4.4 選擇文本的繪制模式通常,在當(dāng)前文本坐標(biāo),使用所選擇的字體,在選擇視窗中以正常文本模式定入

14、文本。正常文本意思是指,文本覆蓋已經(jīng)顯示的任何東西,在這種情況下,在字符中被設(shè)定的位在屏幕上被設(shè)定。在這種模式下,活動(dòng)的位使用前景色寫,而非活動(dòng)的位用背景色寫。然而,在一些場(chǎng)合,需要改變這些默認(rèn)的行為。為了這個(gè)目的,C/GUI提供四種標(biāo)識(shí)(一種默認(rèn)加上三種修改值),它們可以組合使用:正常文本文本可能正常顯示,此時(shí)模式標(biāo)識(shí)應(yīng)指定為GUI_TEXTMODE_NORMAL 或 0。反轉(zhuǎn)文本文本反轉(zhuǎn)顯示,模式標(biāo)識(shí)應(yīng)指定為GUI_TEXTMODE_REVERSE。通常在黑色上顯示白色變成在白色上顯示的黑色。透明文本透明文本意思是文本寫在已經(jīng)在屏幕上可見的任何東西上面。不同的是,屏幕上原有的內(nèi)容仍然能夠看

15、得見,與正常文本相比,背景色被擦除了。模式標(biāo)識(shí)指定為GUI_TEXTMODE_TRANS表示顯示透明文本。異或文本通常情況下,用白色繪制的(實(shí)際字符)顯示是反相的。如果背景顏色是黑色,效果與正常模式(正常文本)是一樣的。如果背景是白色,輸出與反轉(zhuǎn)文本一樣。如果你使用彩色,一個(gè)反相的像素由下式計(jì)算:新像素顏色 = 顏色的值 - 實(shí)際像素顏色 - 1透明反轉(zhuǎn)文本作為透明文本,它不覆蓋背景,作為反轉(zhuǎn)文本,文本顯示是反轉(zhuǎn)的。文本通過指定標(biāo)識(shí)GUI_TEXTMODE_TRANS |GUI_TEXTMODE_REVERSE來實(shí)現(xiàn)這種效果。C/GUI 中文手冊(cè)第 9 頁第 4 章 文本顯示范例顯示正常,反轉(zhuǎn)

16、,透明,異或及透明反轉(zhuǎn)文本:GUI_SetFont(&GUI_Font8x16);GUI_SetFont(&GUI_Font8x16);GUI_SetBkColGUI_Clear();UI_BLUE);GUI_SetPenSize(10);GUI_SetColUI_RED);GUI_DrawLine(80, 10, 240, 90);GUI_DrawLine(80, 90, 240, 10);GUI_SetBkColUI_BLACK);GUI_SetColUI_WHITE);GUI_SetTextMode(GUI_TM_NORMAL); GUI_DispStringHCenterAt(GUI_

17、TM_NORMAL, 160,GUI_SetTextMode(GUI_TM_REV);10);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_DispS

18、tringHCenterAt(GUI_TM_TRANS |GUI_TM_REV,160,74);下圖為上面范例程序執(zhí)行結(jié)果的的屏幕截圖第 10 頁C/GUI 中文手冊(cè)第 4 章 文本顯示GUI_SetTextMode()描述按照指定的參數(shù)設(shè)置文本模式。函數(shù)原型GUI_SetTextMode(TextMode);參數(shù)TextMode允許的數(shù)值(可以用“OR(或)”進(jìn)行組合)返回值選擇的文本模式范例屏幕上坐標(biāo)(0,0)處顯示“The value is”,設(shè)置文本模式為反轉(zhuǎn)模式,再將其設(shè)回正常模式:i = 20;GUI_DispStringAt(The value is, 0, 0); GUI_Se

19、tTextMode(GUI_TEXTMODE_REVERSE);GUI_DispDec(20, 3);GUI_SetTextMode(GUI_TEXTMODE_NORMAL);C/GUI 中文手冊(cè)第 11 頁GUI_TEXTMODE_NORMAL設(shè)置正常文本,這是默認(rèn)的設(shè)置,該數(shù)值等同于0GUI_TEXTMODE_REVERSE設(shè)置反轉(zhuǎn)文本GUI_TEXTMODE_TRANSPARENT設(shè)置透明文本GUI_TEXTMODE_XOR反相顯示的文本參數(shù)含意TextMode設(shè)置的文本模式,可以是文本模式標(biāo)識(shí)的任意組合第 4 章 文本顯示4.5 文本對(duì)齊的選擇GUI_GetTextAlign()描述返

20、回當(dāng)前文本對(duì)齊模式。函數(shù)原型GUI_GetTextAlign(void);GUI_SetLBorder()描述設(shè)置在當(dāng)前視窗換行后的左邊界函數(shù)原型void GUI_SetLBorder(x)GUI_SetTextAlign()描述設(shè)置文本對(duì)齊模式,用于當(dāng)前視窗的字符串輸出。函數(shù)原型GUI_SetTextAlign(TextAlign);參數(shù)TextAlign允許的數(shù)值(水平和垂直標(biāo)識(shí)以“OR”組合)第 12 頁C/GUI 中文手冊(cè)參數(shù)含意TextAlign設(shè)定的文本對(duì)齊模式??梢允撬胶痛怪睂?duì)齊標(biāo)志的組合。參數(shù)含意x新的左邊界(以像素為,0表示視窗左邊界)第 4 章 文本顯示返回值所選擇的文本

21、對(duì)齊模式附加信息GUI_SetTextAllign()不影響以源于GUI_DispChar的字符輸出函數(shù)。范例在坐標(biāo)(100,100)處顯示數(shù)值1234,采用對(duì)中模式:GUI_SetTextAlign(GUI_TA_HCENTER | GUI_TA_VCENTER);GUI_DispDecAt(1234,100,100,4);4.6 設(shè)置當(dāng)前文本坐標(biāo)每個(gè)任務(wù)都有一個(gè)當(dāng)前文本坐標(biāo),該坐標(biāo)以視窗的原點(diǎn)(通常是(0,0))為參考,如果調(diào)用了文本輸出函數(shù),下一個(gè)字符會(huì)寫在這個(gè)坐標(biāo)上。初始化時(shí),該坐標(biāo)是(0,0),即當(dāng)前視窗的左上角。在三個(gè)函數(shù)可能用來設(shè)置當(dāng)前文本坐標(biāo)。GUI_GotoXY(), GUI

22、_GotoX(), GUI_GotoY()描述設(shè)置當(dāng)前寫文本的坐標(biāo)。函數(shù)原型char GUI_GotoXY(char GUI_GotoX(x,x);y);C/GUI 中文手冊(cè)第 13 頁水平對(duì)齊GUI_TA_LEFTX軸方向左對(duì)齊(默認(rèn))GUI_TA_HCENTERX軸方中GUI_TA_RIGHTX軸方向右對(duì)齊(默認(rèn))垂直對(duì)齊GUI_TA_TOP在字符Y軸方向頂部對(duì)齊(默認(rèn))GUI_TA_VCENTER在Y軸方中CUI_TA_BOTTOM在字體Y軸底部線像素對(duì)齊第 4 章 文本顯示char GUI_GotoY(y);返回值通常為0。如果返回?cái)?shù)值非0,則當(dāng)前文本坐標(biāo)超出視窗范圍(到了右邊或下邊),這樣緊接著的寫操作可能被忽略。附加信息GUI_GotoXY()對(duì)當(dāng)前視窗文本坐標(biāo)的X坐標(biāo)和Y坐標(biāo)兩部分同時(shí)設(shè)置。 GUI_GotoX()只對(duì)當(dāng)前視窗文本坐標(biāo)的X坐標(biāo)部分進(jìn)行設(shè)置,Y坐標(biāo)保持不變。GUI_GotoY()只對(duì)當(dāng)前視窗文本坐標(biāo)的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論