|

楼主 |
发表于 2024-10-31 22:20:25
|
显示全部楼层
感谢硬汉哥回复,没有越界,建立了多行的2列表格。上面的这个变量s_ListviewSelIndex 是获取选中的行
hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTVIEW_0);
s_ListviewSelIndex = LISTVIEW_GetSel(hItem);
if(g_ParaList[s_ListviewSelIndex].EditableFlag)//item可编辑标志
{
if(s_u8itemEditStatus)
{
s_u8itemEditStatus = 0;
GetParaValueString(s_ListviewSelIndex,strbuffer);
LISTVIEW_SetItemText(hItem, 0, s_ListviewSelIndex, g_ParaList[s_ListviewSelIndex].ParName);//左侧参数名称
LISTVIEW_SetItemText(hItem, 1, s_ListviewSelIndex, strbuffer);//右侧显示参数的数值或设置
LISTVIEW_SetItemTextColor(hItem, 1, s_ListviewSelIndex, LISTVIEW_CI_SELFOCUS, GUI_YELLOW);
}
else
{
s_u8itemEditStatus = 1;
GetParaValueString(s_ListviewSelIndex,strbuffer);
LISTVIEW_SetItemText(hItem, 0, s_ListviewSelIndex, g_ParaList[s_ListviewSelIndex].ParName);//左侧参数名称
LISTVIEW_SetItemText(hItem, 1, s_ListviewSelIndex, strbuffer);
LISTVIEW_SetItemTextColor(hItem, 1, s_ListviewSelIndex, LISTVIEW_CI_SELFOCUS, GUI_YELLOW);
}
}
else
{
if(g_ParaList[s_ListviewSelIndex].ParBeforeChgeFun)
{
g_ParaList[s_ListviewSelIndex].ParBeforeChgeFun(pMsg);
}
}
用这个函数LISTVIEW_IncSel(hItem);改变选择的行 |
|