我在我的通用控制列表中插入一个项 像这样:
void InsertRow (HWND hWnd, char *col1, char *col2)
{
LV_ITEM lvItem;
lvItem.mask = 0;
lvItem.iItem = 0;
lvItem.iSubItem = 0;
lvItem.iItem = ListView_InsertItem (hWnd, &lvItem);
lvItem.mask = LVIF_TEXT;
lvItem.pszText = col1;
lvItem.cchTextMax = strlen (lvItem.pszText);
ListView_SetItem (hWnd, &lvItem);
lvItem.iSubItem = 1;
lvItem.pszText = col2;
lvItem.cchTextMax = strlen (lvItem.pszText);
ListView_SetItem (hWnd, &lvItem);
}
并且工作很好, 但这是一个麻烦, 因为垂直滚动会回到列表的顶端, 所以如果我在看一个项目, 并调用这个插入函数, 我失去了我的视野, 并且不得不手动滚动回滚, 使我的程序无法工作 。
我怎样才能防止这种自动滚动?
我在C区编程,以直接(而非MFC)的 Win32 API为主。
P.D.: ListView style:
LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_CHILD|WS_VISIBLE|WS_BORDER|WS_VSCROLL|WS_HSCROLL|LVS_REPORT