硬汉嵌入式论坛

 找回密码
 立即注册
查看: 386|回复: 6
收起左侧

[emWin] STemwin Listview不能显示汉字问题

[复制链接]

3

主题

10

回帖

19

积分

新手上路

积分
19
发表于 2024-1-9 14:20:57 | 显示全部楼层 |阅读模式

效果如图

效果如图

图中效果,窗口标题可以正常显示,但是设置列表字体为汉字却无法显示,请问可能什么原因造成的,代码如下





[C] 纯文本查看 复制代码
 //
    // 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[i]);
    }
//    for (i = 0; i < GUI_COUNTOF(_Table); i++) {
//        LISTVIEW_AddRow(hItem, _Table[i]);/* 添加数据 */
//    }
		
		for (i = 0; i < 5; i++) 
		{
			LISTVIEW_SetItemText(hItem, 0, i, (const char *) _Table[i]);
    }
		

		/* 初始化系统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);


回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106754
QQ
发表于 2024-1-9 15:19:02 | 显示全部楼层
获取listview header句柄,然后使用header的api单独设置字体。
回复

使用道具 举报

3

主题

10

回帖

19

积分

新手上路

积分
19
 楼主| 发表于 2024-1-9 15:21:23 | 显示全部楼层
eric2013 发表于 2024-1-9 15:19
获取listview header句柄,然后使用header的api单独设置字体。

[C] 纯文本查看 复制代码
	/* 初始化系统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);



试过了,不行,下载了你们的历程看了一下
回复

使用道具 举报

3

主题

10

回帖

19

积分

新手上路

积分
19
 楼主| 发表于 2024-1-9 15:26:06 | 显示全部楼层
eric2013 发表于 2024-1-9 15:19
获取listview header句柄,然后使用header的api单独设置字体。

可以了,可以了,是我的控件ID写错了,除了header,其他不可以设置汉字显示么?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106754
QQ
发表于 2024-1-9 15:35:01 | 显示全部楼层
TIF 发表于 2024-1-9 15:26
可以了,可以了,是我的控件ID写错了,除了header,其他不可以设置汉字显示么?

可以的,listview本身的字体是调用listview的字体API
回复

使用道具 举报

3

主题

10

回帖

19

积分

新手上路

积分
19
 楼主| 发表于 2024-1-9 17:17:35 | 显示全部楼层
eric2013 发表于 2024-1-9 15:35
可以的,listview本身的字体是调用listview的字体API

为什么其他位置还是显示不了汉字,是设置字体的函数不对么
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106754
QQ
发表于 2024-1-10 08:44:39 | 显示全部楼层
TIF 发表于 2024-1-9 17:17
为什么其他位置还是显示不了汉字,是设置字体的函数不对么

应该是设置不对,这个是我的


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-4 10:42 , Processed in 0.198442 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表