Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Горизонтальный скрол в CListCtrl


Автор: savage_fx 17.2.2007, 23:41
Как его запретить горизонтальный скрол в CListCtrl?

Автор: Greeen 17.2.2007, 23:48
Что ты имеешь в виду? Не показывать горизонтальный скроллбар если колонки не помещаются в клиентскую область?

Автор: savage_fx 17.2.2007, 23:50
to greeen: да

Автор: Greeen 18.2.2007, 00:34
Нужно установить стиль LVS_NOSCROLL.
Но при установленом стиле LVS_REPORT возникнут проблемы - исчезнут заголовки. Решение такое:
Код

HWND hwndListView = GetDlgItem(IDC_LIST1)->GetSafeHwnd();
HWND hwndHeader = ::GetWindow(hwndListView, GW_CHILD);
RECT rc;
HD_LAYOUT hdLayout;
WINDOWPOS wpos;
::GetClientRect(hwndListView, &rc);
hdLayout.prc = &rc;
hdLayout.pwpos = &wpos;
Header_Layout(hwndHeader, &hdLayout);
::SetWindowPos(
hwndHeader,
wpos.hwndInsertAfter,
wpos.x,
wpos.y,
wpos.cx,
wpos.cy,
wpos.flags | SWP_SHOWWINDOW);
ListView_EnsureVisible(hwndListView, 0, FALSE);

Автор: Earnest 18.2.2007, 17:51
Не очень логично, согласитесь: если колонки не помещаются, а скролл запрещен, то как до них добраться? Более естественное решение - синхронизовать общую ширину колонок с шириной клиентской области.

Автор: Greeen 18.2.2007, 22:02
Earnest, вот и я думаю не логично, но видимо товарищу savage_fx зачем то нужно  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)