emwin的listwheel怎么在设置画选中框
怎么在listwheel中画一个类似图2 的矩形框,我用//GUI_SetColor(GUI_RED);
//GUI_DrawRect(9, 20, 160, 40);
画了一下,应该图层不对,画出来的矩形框在listwheel的下面,怎么才能滑到上面来了,GUI_DrawRect又不能设置图层句柄参数。不知道该怎么弄:dizzy:
可以用listview,自带选中行特效
hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTVIEW_0);
LISTVIEW_SetGridVis(hItem, 1);
LISTVIEW_SetHeaderHeight(hItem, 20);
LISTVIEW_SetRowHeight(hItem,20);
LISTVIEW_SetGridVis(hItem,0);
LISTVIEW_AddColumn(hItem, 100, "地址", GUI_TA_HCENTER | GUI_TA_VCENTER);
LISTVIEW_AddColumn(hItem, 150, "检测类型", GUI_TA_HCENTER | GUI_TA_VCENTER);
LISTVIEW_AddColumn(hItem, 90, "状态", GUI_TA_HCENTER | GUI_TA_VCENTER);
LISTVIEW_AddColumn(hItem, 90, "示值", GUI_TA_HCENTER | GUI_TA_VCENTER);
LISTVIEW_AddColumn(hItem, 190, "描述", GUI_TA_HCENTER | GUI_TA_VCENTER);
for(i=0;i<14;i++)
{
LISTVIEW_AddRow(hItem, NULL);
}
LISTVIEW_SetSel(hItem,0); tanic 发表于 2019-8-23 09:23
可以用listview,自带选中行特效
hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTVIEW_0);
LISTVIEW ...
谢谢!我用的是listwheel不是listview。年月日时分秒不是固定值要能够任意搭配,用listview就要一个个写出来,工作量太大:dizzy: 试试这个 LISTWHEEL_SetSel应该是选中额 LISTWHEEL_SetSel 这个能自动根据数据更新现实么。我之前不知道。
用的view+定时器自己刷新的。。。。
tanic 发表于 2019-8-23 10:33
试试这个 LISTWHEEL_SetSel应该是选中额 LISTWHEEL_SetSel 这个能自动根据数据更新现实么。我之前不知 ...
LISTWHEEL_SetFont(listwheel, GUI_FONT_16B_ASCII); LISTWHEEL_SetSel(listwheel, 2);//设置第二行为选中行
LISTWHEEL_SetTextAlign(listwheel, GUI_TA_HCENTER | GUI_TA_VCENTER);//水平垂直居中
LISTWHEEL_SetBkColor(listwheel, LISTWHEEL_CI_UNSEL, GUI_LIGHTGRAY);//未选中背景色
LISTWHEEL_SetBkColor(listwheel, LISTWHEEL_CI_SEL, GUI_LIGHTRED);//选中背景色
这个是设置有多行的时候,以哪一行为选中行,我已经用了,具体效果如图1,但是在用户选择滑动的时候,是不能选中的,如图2
好了,终于可以结贴了,经过一天的无所不用其极,突然发现 API 上有,直接照着画就行:dizzy:
//画选中线框
static int _OwnerDraw(const WIDGET_ITEM_DRAW_INFO * pDrawItemInfo) {
switch (pDrawItemInfo->Cmd) {
case WIDGET_DRAW_OVERLAY:
GUI_SetColor(GUI_RED);
GUI_DrawHLine(32, 0, 52);
GUI_DrawHLine(48, 0, 52);
break;
default:
return LISTWHEEL_OwnerDraw(pDrawItemInfo);
}
return 0;
}
LISTWHEEL_SetFont(listwheel, GUI_FONT_16B_ASCII);
LISTWHEEL_SetSel(listwheel, 2);//设置第二行为选中行
LISTWHEEL_SetTextAlign(listwheel, GUI_TA_HCENTER | GUI_TA_VCENTER);//水平垂直居中
LISTWHEEL_SetBkColor(listwheel, LISTWHEEL_CI_UNSEL, GUI_LIGHTGRAY);//未选中背景色
LISTWHEEL_SetBkColor(listwheel, LISTWHEEL_CI_SEL, GUI_LIGHTRED);//选中背景色
LISTWHEEL_SetOwnerDraw(listwheel, _OwnerDraw);//画选中框
:dizzy::dizzy::dizzy::
@tanic 谢谢!
bl2019 发表于 2019-8-23 17:01
好了,终于可以结贴了,经过一天的无所不用其极,突然发现 API 上有,直接照着画就行
//画选中线框 ...
哈哈,其实很多很多功能都有API只不过文档不好,不知道罢了,每个API都试试:lol 我之前做的是矩阵键盘操作,没有触摸的那种UI;P tanic 发表于 2019-8-24 09:37
我之前做的是矩阵键盘操作,没有触摸的那种UI
做出来之后给我说我们的屏幕不支持滑动:dizzy: bl2019 发表于 2019-8-24 14:51
做出来之后给我说我们的屏幕不支持滑动
加个触摸就行了。。。
页:
[1]