上次看了其他人的教程,直接用GUIBUILDER工具生成界面來仿真,其實也可以直接用代碼來製作那些東西的,用那個工具的話更容易,這文本顯示可以說和上面沒有多大關係,像是從頭來過的。就和我們寫main函數一樣寫就好了,之前我花了太多時間去找怎麼學習那個圖形編程關於怎麼切換的,一步一步來,那些可以先不用找
第一步:我們還是打開那個DEMO例程,主界面還是那樣的,我們就改Maintask函數裏的內容就好,如:
關於文本顯示,我們就直接調用庫裏面的函數就好了,我調用了一個emwin_textst函數,這個函數呢,自己寫的。先新建一個C文件,然後添加進工程,放在Application那個文件夾下面。需要頭文件GUI_DEMO.H
比如我們需要在那個界面裏寫一個hello world,就直接調用API函數,GUI_DispString(“HELLO WORD!”);效果如圖:
關於文本顯示,裏面還有很多API函數,可以看API函數手冊,上面有具體說明。要做複雜一點,就自己去調用更多函數寫一些文本,還有畫線什麼的都可以,很是強大。
這是手冊裏的例程代碼:
GUI_DispString("HELLO WORD!");
int i;
char acText[] = "This example demostrates text wrapping"; //定義字符串
GUI_RECT Rect = { 200, 240, 259, 299 }; //定義矩形顯示區域
GUI_WRAPMODE aWm[] = { GUI_WRAPMODE_NONE,GUI_WRAPMODE_CHAR,GUI_WRAPMODE_WORD };
//一個數組,GUI_DispStringInRectWrap這個函數裏,創立的顯示框框內的字符排列方式
GUI_SetBkColor(GUI_BLUE); //設置背景顏色
GUI_Clear(); //清屏
GUI_SetFont(&GUI_Font24_ASCII); //設置字體
GUI_SetColor(GUI_YELLOW); //設置前景色(如文本,畫線等顏色)
GUI_DispString("HELLO WORD!");
GUI_SetFont(&GUI_Font8x16); //設置字體
GUI_SetPenSize(10); //設置筆大小
GUI_SetColor(GUI_RED); //紅色字體
GUI_SetBkColor(GUI_BLACK); //設置黑色背景
GUI_SetColor(GUI_WHITE); //設置字體顏色爲白色
GUI_SetTextMode(GUI_TM_NORMAL); //正常模式
GUI_DispStringHCenterAt("GUI_TM_NORMAL", 400, 50); //字符串,橫座標,縱座標,以下一樣
GUI_SetTextMode(GUI_TM_REV); //反轉文本
GUI_DispStringHCenterAt("GUI_TM_REV", 400, 66);
GUI_SetTextMode(GUI_TM_TRANS); //透明文本
GUI_DispStringHCenterAt("GUI_TM_TRANS", 400, 82);
for (i = 0; i<3; i++)
{
GUI_SetColor(GUI_WHITE);
GUI_FillRectEx(&Rect);
GUI_SetColor(GUI_BLACK);
GUI_DispStringInRectWrap(acText, &Rect, GUI_TA_LEFT, aWm[i]);//在當前窗口指定的矩形區域內顯示字符串(並可自動換行)
Rect.x0 += 70;
Rect.x1 += 70;
}
顯示效果如下: