Обновление значения подэлемента в элементе управления виртуальным списком (LVS_OWNERDATA) - PullRequest
0 голосов
/ 30 января 2020

В моем приложении на основе диалогового окна MF C я использую управление виртуальным списком (LVS_OWNERDATA)

Поток используется для отслеживания изменений в данных или векторе, используемых listctrl, и всякий раз, когда происходит изменение данных для элемента вместо того, чтобы рисовать все элементы в listctrl с помощью функции SetItemCountEx (), я пытаюсь обновить только соответствующий элемент, используя приведенный ниже код.

Но когда я щелкаю или выбираю соответствующий элемент, то только ниже Код обновляет значение в пользовательском интерфейсе.

NMLVDISPINFO nmlvDispInfo;
memset(&nmlvDispInfo,0,sizeof(nmlvDispInfo));

nmlvDispInfo.hdr.hwndFrom = m_ctrlLst.m_hWnd;
nmlvDispInfo.hdr.idFrom   = IDC_LIST1;
nmlvDispInfo.hdr.code     = LVN_GETDISPINFO;

nmlvDispInfo.item.mask       = LVIF_TEXT;
nmlvDispInfo.item.state      = 0;
nmlvDispInfo.item.stateMask  = 0;
nmlvDispInfo.item.pszText    = (LPTSTR)strX.GetBuffer();
nmlvDispInfo.item.cchTextMax = 200;

nmlvDispInfo.item.iItem    = iItem;
nmlvDispInfo.item.iSubItem = 1;

::SendMessage(this->m_hWnd,WM_NOTIFY,(WPARAM)nmlvDispInfo.hdr.idFrom,(LPARAM)&nmlvDispInfo);

Если я вызываю SetItemCountEx (), пользовательский интерфейс мигает, поэтому я попытался обновить только один элемент.

, пожалуйста, помогите мне решить эту проблему.

...