次のように、共通コントロールのリストビューに項目を挿入しています。
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);
}
正常に動作しますが、垂直スクロールがリストの一番上に戻るので面倒です。そのため、アイテムを見ているときにこの挿入関数を呼び出すと、ビューが失われ、手動でスクロールしてプログラムを作成する必要があります一緒に働くことは不可能です。
この自動スクロールを防ぐにはどうすればよいですか?
Win32 APIを直接(MFCではなく)使用して、Cでプログラミングしています。
PD: ListView スタイル:
LVS_SINGLESEL | WS_BORDER | WS_TABSTOP | WS_CHILD|WS_VISIBLE|WS_BORDER|WS_VSCROLL|WS_HSCROLL|LVS_REPORT