Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ScrollBar and ListView 
V
    Опции темы
Letchik
Дата 2.4.2010, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 5.1.2010
Где: UGTB

Репутация: нет
Всего: нет



Всем привет!
Необходимо создать ListView с множеством колонок. На экране все не помещаются, поэтому нужен ScrollBar. Только вот как его добавить не понятно. Полазил по интернету и но кроме тем "как удалить горизонтальный scrollbar из listview" не нашёл.  smile  smile 
Может кто поможет? 
PM MAIL Skype   Вверх
ZC1989
Дата 2.4.2010, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 468
Регистрация: 17.7.2006
Где: Нижний Новгород; Россия

Репутация: 1
Всего: 1



WS_HSCROLL - Создает окно, которое имеет горизонтальную линейку прокрутки.
WS_VSCROLL - Создает окно, которое имеет вертикальную линейку прокрутки.

Это сообщение отредактировал(а) ZC1989 - 2.4.2010, 13:54


--------------------
озарение настанет позже, когда поймём больше... (Сo. Stigmata)
PM MAIL ICQ   Вверх
Letchik
Дата 2.4.2010, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 5.1.2010
Где: UGTB

Репутация: нет
Всего: нет



В стилях задавал эти параметры, но реакции никакой. (CreateWindowEx).
PM MAIL Skype   Вверх
Alca
Дата 2.4.2010, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 5
Всего: 50



Код

CONTROL         "",IDC_LIST1,"SysListView32",LVS_LIST | LVS_ALIGNLEFT | WS_BORDER | WS_TABSTOP,39,88,227,168,WS_EX_LEFTSCROLLBAR



--------------------
PM WWW ICQ Skype Jabber   Вверх
ZC1989
Дата 2.4.2010, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 468
Регистрация: 17.7.2006
Где: Нижний Новгород; Россия

Репутация: 1
Всего: 1



покажи как создаёшь?


--------------------
озарение настанет позже, когда поймём больше... (Сo. Stigmata)
PM MAIL ICQ   Вверх
Alca
Дата 2.4.2010, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 5
Всего: 50



Код

::SetWindowLong(listview.handle,GWL_STYLE, ::GetWindowLong(listview.handle,GWL_STYLE) | WS_HSCROLL);

::SetWindowPos(listview.handle,0,0,0,0,0,SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED);

//::InvalidateRect(listview.handle, NULL, TRUE);


Добавлено @ 15:20
Код

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
        Dim dword As Integer 
        'вообще выключить чтоб не мешало 
        ListView1.Scrollable = False 
        '1 метод Включить скролл 
        SetWindowLong(ListView1.Handle.ToInt32, GWL_STYLE, GetWindowLong(ListView1.Handle.ToInt32, GWL_STYLE) Or WS_VSCROLL Or WS_HSCROLL) 
        SetWindowPos(ListView1.Handle.ToInt32, 0, 0, 0, 0, 0, SWP_FRAMECHANGED Or SWP_NOMOVE Or SWP_NOSIZE Or SWP_NOZORDER) 
        '2 метод включить скролл 
        'ShowScrollBar(ListView1.Handle.ToInt32, 3, 1) 
        '3 
        'SetScrollInfo 
 
        'Проверка наличия скролов 
        dword = GetWindowLong(ListView1.Handle.ToInt32, GWL_STYLE) 
        If (dword And WS_VSCROLL) Then 
            ' Debug.WriteLine("вертикальный скрол") 
        End If 
        If (dword And WS_HSCROLL) Then 
            ' Debug.WriteLine("горизональный скрол") 
        End If 
    End Sub


http://support.microsoft.com/kb/111011

Это сообщение отредактировал(а) Alca - 2.4.2010, 23:28


--------------------
PM WWW ICQ Skype Jabber   Вверх
Letchik
Дата 2.4.2010, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 5.1.2010
Где: UGTB

Репутация: нет
Всего: нет



Товарищи! Всем спасибо за ответы!
Я нашёл ответ на свой вопрос. Дело в том, что мой ListView привязан к размеру окна с помощью вот такого обработчика
Код

    case WM_SIZE:
        
        GetClientRect(hwnd, &rc);

        MoveWindow(hList, 0, 44, rc.right, rc.bottom - 43, TRUE);

        break;


Обратите внимание на выделенный параметр. Раньше я не отнимал от rc.bottom 43 пикселя и ползунок был просто тупо спрятан. 
Совсем случайно это обнаружил. В жизни бы не догадался что причиной головной боли окажется такая глупость.
Всем спасибо  smile 
PM MAIL Skype   Вверх
Alca
Дата 2.4.2010, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 5
Всего: 50



Ставь галочку.


--------------------
PM WWW ICQ Skype Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0508 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.