У меня есть нарисованный владельцем список, в который я добавляю много предметов (и это занимает время),
когда элементы добавляются, вертикальная полоса прокрутки продолжает уменьшаться,
Я хочу отключить полосу прокрутки, когда начну добавлять, а затем снова включить ее.
Я пытался -
LONG old_style=GetWindowLong(hPlayList,GWL_STYLE);
LONG new_style= old_style&~WS_VSCROLL;
SetWindowLong(hPlayList,GWL_STYLE,new_style);
SetWindowPos(hPlayList,HWND_TOP,lstRc.left,lstRc.right,lstRc.right-lstRc.top,lstRc.bottom-lstRc.top,
SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED);
UpdateWindow(hPlayList);
и
ShowScrollBar(hPlayList,SB_VERT,FALSE);
Но полоса прокрутки все еще отображается, когда я добавляю элементы,
список создается как,
hPlayList = CreateWindowEx(WS_EX_CLIENTEDGE, WC_LISTBOX, NULL,
LBS_OWNERDRAWFIXED |WS_VSCROLL | WS_HSCROLL |WS_CHILD | WS_TABSTOP | WS_VISIBLE|LBS_NOTIFY|LBS_HASSTRINGS,
lbsPos.x, lbsPos.y,350, 400, hWnd, (HMENU) LIST_ID, GetModuleHandle(NULL), NULL);
и я использую SendMessage () для добавления элементов.
Я тоже пытался,
ShowWindow(hPlayList,SW_HIDE);
и
SendMessage(hPlayList,WM_SETREDRAW,(WPARAM)FALSE,0);