void CSkinnedComboBox::ShowDropDown(BOOL bShowIt)
{
__super::ShowDropDown(bShowIt);
m_my_list_box.HandleShowDropDown(bShowIt);
}
void CSkinnedListBox::HandleShowDropDown(BOOL bShowIt)
{
...
m_v_scroll.SetWindowPos(NULL, l_list_box_rect.right - l_scroll_rect.Width(), 0, 0, 0, SWP_NOACTIVATE | SWP_NOSIZE);
...
}
Проблема со скроллом listbox, mfc
Проблема заключается в том, что когда я выполняю следующую последовательность действий:
1. "разворачиваю" список;
2. скроллирую список вниз;
3. "сворачиваю" список;
4. "разворачиваю" список;
При выполнении действия 4 - повтороного "разворачивания" списка - окно скролла автоматически опускается на высоту одного элемента listboxа вниз (компенсируя поднятие окна скролла вверх после скроллинга вниз). Так вот это опускание окна скролла я никак не могу предотвратить. Я пытаюсь делать так:
Код:
но это, как будто никак не влияет на расположение окна скролла и он всё равно после действия (4) распологается ниже положенного на высоту одного элемента listboxа.
Может быть можно как-то запретить менять размер и расположение окна скролла (начиная с определённого момента)?
Или ещё каким-то образом предотвратить перемещение окна скролла вверх-вниз?