|
WM_HWIN GhManuList;
static const GUI_WIDGET_CREATE_INFO _aManuList[] =
{
{ WINDOW_CreateIndirect, NULL, MANU_WINDOW, 0, 0, 320, 480, 0},
{ TEXT_CreateIndirect, NULL, MANU_TEXT, 0, 0, 320, 35, 0},
{ LISTVIEW_CreateIndirect, NULL, MANU_LISTVIEW, 5, 35, 310, 386, 0},
{ BUTTON_CreateIndirect, NULL, MANU_SEARCH, 5, 430, 74, 40, 0},
{ BUTTON_CreateIndirect, NULL, MANU_DETERMINE, 123, 430, 74, 40, 0},
{ BUTTON_CreateIndirect, NULL, MANU_LANG, 241, 430, 74, 40, 0}
};
static void _cbManuList (WM_MESSAGE * pMsg)
{
WM_HWIN hWin, hList, hItem, hSearch, hDeter, hLang;
int ulId, ulNCode;
GUI_RECT Rect;
int cnt = 1;
BUTTON_SetDefaultFont(&GUI_FontHZ16);
BUTTON_SetDefaultTextAlign(GUI_TA_HCENTER | GUI_TA_VCENTER);
BUTTON_SetDefaultTextColor(GUI_BLUE, BUTTON_CI_UNPRESSED);
hWin = pMsg->hWin;
switch(pMsg->MsgId)
{
case WM_PAINT:
WM_GetClientRectEx(hWin, &Rect);
GUI_DrawGradientV(Rect.x0, Rect.y0, Rect.x1, Rect.y1, 0xFF8080, 0x8080FF);
break;
case WM_INIT_DIALOG:
hItem = WM_GetDialogItem(hWin, MANU_TEXT);
TEXT_SetFont(hItem, &GUI_FontHZ24);
if (!GucKeyFlag)
TEXT_SetText(hItem, ManuListEng[0]);
else
TEXT_SetText(hItem, ManuListCh[0]);
TEXT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
hList = WM_GetDialogItem(hWin, MANU_LISTVIEW);
LISTVIEW_SetFont(hList, &GUI_FontHZ16);
LISTVIEW_SetGridVis(hList, 1);
LISTVIEW_SetRowHeight(hList, 30);
if (!GucKeyFlag)
{
LISTVIEW_AddColumn(hList, 50, ManuListEng[4], GUI_TA_HCENTER | GUI_TA_VCENTER);
LISTVIEW_AddColumn(hList, 50, ManuListEng[5], GUI_TA_HCENTER | GUI_TA_VCENTER);
LISTVIEW_AddColumn(hList, 175, ManuListEng[6], GUI_TA_HCENTER | GUI_TA_VCENTER);
}
else
{
LISTVIEW_AddColumn(hList, 50, ManuListCh[4], GUI_TA_HCENTER | GUI_TA_VCENTER);
LISTVIEW_AddColumn(hList, 50, ManuListCh[5], GUI_TA_HCENTER | GUI_TA_VCENTER);
LISTVIEW_AddColumn(hList, 175, ManuListCh[6], GUI_TA_HCENTER | GUI_TA_VCENTER);
}
HEADER_SetFont(LISTVIEW_GetHeader(hList), &GUI_FontHZ16);
HEADER_SetHeight(LISTVIEW_GetHeader(hList), 30);
SCROLLBAR_CreateAttached(hList, SCROLLBAR_CF_VERTICAL);
hItem = WM_GetScrollbarV(hList);
SCROLLBAR_SetWidth(hItem, 35);
SCROLLBAR_SetThumbSizeMin(18);
hSearch = WM_GetDialogItem(hWin, MANU_SEARCH);
hDeter = WM_GetDialogItem(hWin, MANU_DETERMINE);
hLang = WM_GetDialogItem(hWin, MANU_LANG);
if (!GucKeyFlag)
{
BUTTON_SetText(hSearch, ManuListEng[1]);
BUTTON_SetText(hDeter, ManuListEng[2]);
BUTTON_SetText(hLang, ManuListEng[3]);
}
else
{
BUTTON_SetText(hSearch, ManuListCh[1]);
BUTTON_SetText(hDeter, ManuListCh[2]);
BUTTON_SetText(hLang, ManuListCh[3]);
}
break;
case WM_NOTIFY_PARENT:
ulId = WM_GetId(pMsg->hWinSrc);
ulNCode = pMsg->Data.v;
switch (ulNCode)
{
case WM_NOTIFICATION_CLICKED:
break;
case WM_NOTIFICATION_RELEASED:
if (ulId == MANU_LISTVIEW)
{
}
else if (ulId == MANU_DETERMINE)
{
WM_HideWindow(GhManuList);
WM_ShowWindow(GhMainWin);
}
else if (ulId == MANU_LANG)
{
GucKeyFlag = (cnt % 2);
cnt++;
WM_Paint(GhManuList);
}
}
break;
default:
WM_DefaultProc(pMsg);
break;
}
}
WM_HWIN CreateManuList (WM_HWIN hWin)
{
GhManuList = GUI_CreateDialogBox(_aManuList, GUI_COUNTOF(_aManuList), _cbManuList, WM_HBKWIN, 0, 0);
return GhManuList;
}
以上是我的代码,我本来想在点击MANU_LANG这个ID所对应的窗口之后,窗口中的控件进行中英文切换。
但是由于我这个窗口在一开始就已经创建,所以点击MANU_LANG,控件并没有切换中英文,但是在这个窗口下的子窗口(我用了创建和删除窗口操作)就可以进行切换,所以似乎需要在窗口重绘的时候才能切换字体。
希望有大神能够帮忙解答一下如何才能使得窗口进行中英文切换,谢谢!
|
|