|
本人用emwin创建了一个button不显示中文,不知道是怎么回事,也按照那个第五期教程进行操作了,不知道哪里有问题?
static const GUI_WIDGET_CREATE_INFO _aDialogCreate[] = {
{ WINDOW_CreateIndirect, "Window", ID_WINDOW_0, 0, 0, 240, 128, 0, 0x0, 0 },
{ BUTTON_CreateIndirect, "油", ID_BUTTON_0, 5, 5, 60, 24, 0, 0x0, 0 },
{ TEXT_CreateIndirect, "2014-03-19 12:00", ID_TEXT_0, 146, 1, 92, 14, 0, 0x0, 0 },
{ BUTTON_CreateIndirect, "Data", ID_BUTTON_1, 5, 30, 60, 24, 0, 0x0, 0 },
{ BUTTON_CreateIndirect, "Settime", ID_BUTTON_2, 5, 55, 60, 24, 0, 0x0, 0 },
{ BUTTON_CreateIndirect, "Language", ID_BUTTON_3, 5, 80, 60, 24, 0, 0x0, 0 },
{ TEXT_CreateIndirect, "English", ID_TEXT_1, 75, 85, 80, 20, 0, 0x0, 0 },
// USER START (Optionally insert additional widgets)
// USER END
};
在显示ID_BUTTON_0的时候是空白的
void InitDialog(WM_MESSAGE * pMsg)
{
WM_HWIN hWin = pMsg->hWin;
GUI_UC_SetEncodeUTF8();
BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON0),&GUI_Fontweiruanyahei20);
}
static void _cbDialog(WM_MESSAGE * pMsg) {
int NCode;
int Id;
// USER START (Optionally insert additional variables)
// USER END
WM_HWIN hWin = pMsg->hWin;
switch (pMsg->MsgId) {
case WM_PAINT:
PaintDialog(pMsg);
break;
case WM_INIT_DIALOG:
InitDialog(pMsg);
break;
case WM_NOTIFY_PARENT:
void MainTask(void)
{
//BUTTON_SetDefaultSkin(BUTTON_SKIN_FLEX); // Sets the default skin for new widgets
//CHECKBOX_SetDefaultSkin (CHECKBOX_SKIN_FLEX);
//GUI_UC_SetEncodeUTF8();
//TEXT_SetTextColor(WM_GetDialogItem(hWin,GUI_ID_TEXT0), GUI_RED);
//TEXT_SetFont(WM_GetDialogItem(hWin,GUI_ID_TEXT0),&GUI_FontSongFont16);
//GUI_SetFont(&GUI_Fontweiruanyahei20);
//GUI_DispStringAt("油", 30, 30);
//while(1);
//GUI_ExecDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), &_cbDialog, 0, 0, 0);
GUI_CreateDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), &_cbDialog, 0, 0, 0);
while(1){
GUI_Delay(10);
}
}
调用这个GUI_DispStringAt("油", 30, 30);,可以打印出中文来,不知道我哪里有问题,帮主帮我看下可以吗? |
|