На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела Visual C++ / MFC / WTL (далее Раздела)
1) На Раздел распространяются все Правила Форума.
2) Перед тем, как создать новый топик, убедитесь, что Вы читали Правила создания тем в Разделе.
3) Вопросы, не связанные с программированием (настройки MS Visual Studio, книги, библиотеки и т.д.),
обсуждаются в разделе C/C++: Прочее
4) Вопросы разработки .NET (Windows Form, C++/CLI и т.п.) приложений на Visual C++/C# обсуждаются в разделе .NET.
5) Нарушение Правил может повлечь наказание со стороны модераторов.

Полезные ссылки:
user posted image FAQ Раздела user posted image Обновления для FAQ Раздела user posted image Поиск по Разделу user posted image MSDN Library Online
Модераторы: ElcnU
  
> Virtual CListCtrl + CListBox , Как добавить в ячейку листбокс?
    Борьба за быстродействие и нехватку памяти для ооочень больших списков.
    Сделал виртуальный CListCtrl. По клику на ячейке нужно вывести CListBox и выбрать какое-то значение.
    1. Вот не пойму как динамически создать этот CListBox и от него получить выбранное значение?
    2. В расширенных CListCtrl в ячейки уже встроен CListBox, а как сделать что-то похожее на CListBox: в рамочке значение и рядом треугольничек?
        Cfon, спасибо, я его уже видел, но мне нужен виртуальный CListCtrl
          Цитата Vladimir_ @
          1. Вот не пойму как динамически создать этот CListBox и от него получить выбранное значение?

          Самое тупое решение(возможно самое рациональное и разумное), в редакторе форм создать диалог с CListBox, потом по клику на ячейке - его вызывать, и его заполнять значениями при открытии(в конструктор диалога передавать данные, в OnInitDialog ими наполнять свой ClistBox), потом при клике на ячейку CListCtrl - вызывать DoModal у твоего диалога, после вызова DoModal - проверять возвращенное значение, если IDOK, тогда брать с него данные, например какую нибудь функцию запилить, которая будет возвращать - что выбрал пользователь.

          Цитата Vladimir_ @
          . В расширенных CListCtrl в ячейки уже встроен CListBox, а как сделать что-то похожее на CListBox: в рамочке значение и рядом треугольничек?

          Ниче не понял. Но на крайняк можно самому нарисовать треугольничек.
          Сообщение отредактировано: KILLER -
            KILLER, спасибо, да я так "тупо" и сделал!
            Но вот пока не могу найти как сделать чтобы автоматом раскрывался CListBox.
            Т.е. нужно чтобы при двойном клике на ячейке в CListCtrl появлялся уже раскрытый CListBox.
            Я так понимаю в InitDialog запускаю таймер, а там какое-то сообщение CListBox нужно послать?
              Цитата Vladimir_ @
              KILLER, спасибо, да я так "тупо" и сделал!
              Но вот пока не могу найти как сделать чтобы автоматом раскрывался CListBox.
              Т.е. нужно чтобы при двойном клике на ячейке в CListCtrl появлялся уже раскрытый CListBox.
              Я так понимаю в InitDialog запускаю таймер, а там какое-то сообщение CListBox нужно послать?

              Ну тут есть несколько вариантов.
              1) - либо я не понимаю что ты вообще хочешь сделать
              2) - либо ты перепутал ListBox с чем то другим
              3) - либо ты не понятно формулируешь свой вопрос.

              Что значит я хочу чтобы раскрывался CListBox ???? Это список, он не может раскрываться в принципе. Может быть ты хочешь ComboBox ? Или ты имеешь ввиду как заполнить CListBox значениями?
              Ты можешь сделать скриншот того, что ты хочешь и нормально пояснить? И какой еще таймер в InitDialog? Зачем он нужен?
              Вот так выглядит CListBox:
              Прикреплённая картинка
              Прикреплённая картинка


              Теперь объясни - что значит "как сделать чтобы автоматом раскрывался"?
              Сообщение отредактировано: KILLER -
                После двойного клика на ячейке у меня так:
                Прикреплённая картинка
                Прикреплённая картинка

                а надо так:
                Прикреплённая картинка
                Прикреплённая картинка
                  Можешь скинуть минимальный проект? Потому что судя по всему - у тебя там какая то кнопка, нажимая на которую нужно показать список. Но я не совсем представляю как у тебя внутри все устроено, соответственно мне сложно угадывать как тебе нужно сделать.
                  Но могу сказать одно - если вот эта хрень, которая должна показываться CListBox, А вот та кнопка со треугольником - диалог(или кнопка или что это вообще?), то возможно, когда ты показываешь свой CListBox - он у тебя показывается, но не там.
                  Какой у него родитель? В твоем случае, если без минимальных телодвижений делать, у него родитель должен быть CListCtrl, тогда он будет рисоваться по верх него. А у тебя судя по всему другой родитель, и он рисуется, но рисуется в другом окне.
                  Сообщение отредактировано: KILLER -
                    Все, спасибо, нашел функцию ShowDropDown();
                      Цитата Vladimir_ @
                      Все, спасибо, нашел функцию ShowDropDown();

                      Ыыы, так значит у тебя не CListBox, а CComboBox, потому что такого метода у CListBox'а - нет. Он есть у CComboBox.
                        Ага, очепятался :blush:
                          Цитата Vladimir_ @
                          Ага, очепятался :blush:

                          Ты в следующий раз, копируй типы данных прямо из кода, а не пиши их руками. Тогда ты очень много времени сэкономишь себе и остальным, потому как выше я тебе писал:
                          Цитата KILLER @
                          Что значит я хочу чтобы раскрывался CListBox ???? Это список, он не может раскрываться в принципе. Может быть ты хочешь ComboBox ?
                            ок
                            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                            0 пользователей:


                            Рейтинг@Mail.ru
                            [ Script execution time: 0,0554 ]   [ 20 queries used ]   [ Generated: 2.05.24, 23:27 GMT ]