|
请问emwin的LISTBOX控件可以实现按键按到最后一行回到第一行,类似这样的循环效果吗?我尝试使用LISTBOX_SetSel,但好像不起作用
下面是实现的部分代码
case WM_KEY:
{
if (((WM_KEY_INFO*)(pMsg->Data.p))->PressedCnt)
{
int Key = ((WM_KEY_INFO*)(pMsg->Data.p))->Key;
hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTBOX_0);
int Sel = LISTBOX_GetSel(hItem);
int ItemCount = LISTBOX_GetNumItems(hItem);
if (Key == GUI_KEY_DOWN)
{
if (Sel == ItemCount - 1) // 如果当前选择是最后一项
{
LISTBOX_SetSel(hItem, 0); // 设置选择为第一项
}
else
{
LISTBOX_SetSel(hItem, Sel + 1); // 选择下一项
}
}
else if (Key == GUI_KEY_UP)
{
if (Sel == 0) // 如果当前选择是第一项
{
LISTBOX_SetSel(hItem, ItemCount - 1); // 设置选择为最后一项
}
else
{
LISTBOX_SetSel(hItem, Sel - 1); // 选择上一项
}
}
else
{
ProcessKeyEvent(Key, ((WM_KEY_INFO*)(pMsg->Data.p))->PressedCnt);
}
}
}
break;
|
|