STemwin Listview不能显示汉字问题
图中效果,窗口标题可以正常显示,但是设置列表字体为汉字却无法显示,请问可能什么原因造成的,代码如下
//
// Initialization of 'Window'
//
hItem = pMsg->hWin;
WINDOW_SetBkColor(hItem, GUI_MAKE_COLOR(0x00FFFFFF));
/* 初始化Framewin控件 */
FRAMEWIN_SetTitleHeight(hItem, 25);
FRAMEWIN_SetText(hItem, "系统参数");
FRAMEWIN_SetTextAlign(hItem,GUI_TA_HCENTER | GUI_TA_VCENTER);
FRAMEWIN_SetFont(hItem, &GUI_FontHZ24x24);
FRAMEWIN_SetBarColor(hItem,1,GUI_WHITE);
/* 初始化通道Listview控件 */
hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTVIEW_0);
// FRAMEWIN_SetDefaultFont(&GUI_FontHZ24x24);
LISTVIEW_SetHeaderHeight(hItem, 30);
LISTVIEW_AddColumn(hItem, 70, "channal", GUI_TA_HCENTER | GUI_TA_VCENTER);
LISTVIEW_AddColumn(hItem, 55, "1", GUI_TA_HCENTER | GUI_TA_VCENTER);
LISTVIEW_AddColumn(hItem, 55, "2", GUI_TA_HCENTER | GUI_TA_VCENTER);
LISTVIEW_AddColumn(hItem, 55, "3", GUI_TA_HCENTER | GUI_TA_VCENTER);
LISTVIEW_AddColumn(hItem, 55, "4", GUI_TA_HCENTER | GUI_TA_VCENTER);
LISTVIEW_AddColumn(hItem, 55, "5", GUI_TA_HCENTER | GUI_TA_VCENTER);
LISTVIEW_AddColumn(hItem, 55, "6", GUI_TA_HCENTER | GUI_TA_VCENTER);
LISTVIEW_AddColumn(hItem, 55, "7", GUI_TA_HCENTER | GUI_TA_VCENTER);
LISTVIEW_SetRowHeight(hItem, 30);
LISTVIEW_AddRow(hItem, NULL);
LISTVIEW_AddRow(hItem, NULL);
LISTVIEW_AddRow(hItem, NULL);
LISTVIEW_AddRow(hItem, NULL);
LISTVIEW_AddRow(hItem, NULL);
LISTVIEW_SetGridVis(hItem, 1);
// LISTVIEW_SetFont(hItem, &GUI_FontHZ24x24); //GUI_FONT_16_ASCII
// LISTVIEW_SetAutoScrollH(hItem, 1);
// LISTVIEW_SetAutoScrollV(hItem, 1);
for (i = 0; i < 5; i++)
{
LISTVIEW_SetItemText(hItem, 0, i, (const char *) _Table);
}
// for (i = 0; i < GUI_COUNTOF(_Table); i++) {
// LISTVIEW_AddRow(hItem, _Table);/* 添加数据 */
// }
for (i = 0; i < 5; i++)
{
LISTVIEW_SetItemText(hItem, 0, i, (const char *) _Table);
}
/* 初始化系统Listview控件 */
hItem = LISTVIEW_GetHeader(WM_GetDialogItem(pMsg->hWin, GUI_ID_LISTVIEW1));
HEADER_SetFont(hItem, &GUI_FontHZ24x24);
hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTVIEW_1);
LISTVIEW_SetHeaderHeight(hItem, 30);
LISTVIEW_AddColumn(hItem, 50, "频段", GUI_TA_HCENTER | GUI_TA_VCENTER);
LISTVIEW_AddColumn(hItem, 80, "声光报警", GUI_TA_HCENTER | GUI_TA_VCENTER);
LISTVIEW_AddColumn(hItem, 80, "采集仪编号", GUI_TA_HCENTER | GUI_TA_VCENTER);
LISTVIEW_AddColumn(hItem, 80, "蓝牙名称", GUI_TA_HCENTER | GUI_TA_VCENTER);
LISTVIEW_AddColumn(hItem, 80, "软件版本", GUI_TA_HCENTER | GUI_TA_VCENTER);
LISTVIEW_SetRowHeight(hItem, 30);
LISTVIEW_AddRow(hItem, NULL);
LISTVIEW_SetItemText(hItem, 0, 0, "433");
// LISTVIEW_SetFont(hItem, &GUI_FontHZ24x24);
LISTVIEW_SetGridVis(hItem, 1);
获取listview header句柄,然后使用header的api单独设置字体。 eric2013 发表于 2024-1-9 15:19
获取listview header句柄,然后使用header的api单独设置字体。
/* 初始化系统Listview控件 */
hItem = LISTVIEW_GetHeader(WM_GetDialogItem(pMsg->hWin, GUI_ID_LISTVIEW1));
HEADER_SetFont(hItem, &GUI_FontHZ24x24);
hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTVIEW_1);
LISTVIEW_SetHeaderHeight(hItem, 30);
LISTVIEW_AddColumn(hItem, 50, "频段", GUI_TA_HCENTER | GUI_TA_VCENTER);
LISTVIEW_AddColumn(hItem, 80, "声光报警", GUI_TA_HCENTER | GUI_TA_VCENTER);
LISTVIEW_AddColumn(hItem, 80, "采集仪编号", GUI_TA_HCENTER | GUI_TA_VCENTER);
LISTVIEW_AddColumn(hItem, 80, "蓝牙名称", GUI_TA_HCENTER | GUI_TA_VCENTER);
LISTVIEW_AddColumn(hItem, 80, "软件版本", GUI_TA_HCENTER | GUI_TA_VCENTER);
LISTVIEW_SetRowHeight(hItem, 30);
LISTVIEW_AddRow(hItem, NULL);
试过了,不行,下载了你们的历程看了一下 eric2013 发表于 2024-1-9 15:19
获取listview header句柄,然后使用header的api单独设置字体。
可以了,可以了,是我的控件ID写错了,除了header,其他不可以设置汉字显示么?
TIF 发表于 2024-1-9 15:26
可以了,可以了,是我的控件ID写错了,除了header,其他不可以设置汉字显示么?
可以的,listview本身的字体是调用listview的字体API eric2013 发表于 2024-1-9 15:35
可以的,listview本身的字体是调用listview的字体API
为什么其他位置还是显示不了汉字,是设置字体的函数不对么 TIF 发表于 2024-1-9 17:17
为什么其他位置还是显示不了汉字,是设置字体的函数不对么
应该是设置不对,这个是我的
https://img.anfulai.cn/dz/attachment/forum/pw/Fid_12/12_58_feed38cf972ef12.png
页:
[1]