На главную Наши проекты:
Журнал   ·   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
  
> Сделать ComboBox не редактируемым вручную , не помогает ModifyStyle...
    Добрый день. Мне нужно, чтобы пользователь не мог менять значение в строке руками, а только выбирать из списка. Делаю вот так:
    ExpandedWrap disabled
      BOOL CCfgSettingsDlg::OnInitDialog()
      {
          CPropertyPage::OnInitDialog();
          
          // TODO: Add extra initialization here
          m_cbEnqCfg.AddString("Да");
          m_cbEnqCfg.AddString("Нет");
       
          m_cbEnqCfg.SetCurSel(0);
          m_cbEnqCfg.ModifyStyle(CBS_DROPDOWN | CBS_SIMPLE, CBS_DROPDOWNLIST):
          
          return TRUE;  // return TRUE unless you set the focus to a control
                        // EXCEPTION: OCX Property Pages should return FALSE
      }

    То есть стиль устанавливаю в CBS_DROPDOWNLIST, который и отвечает за такое поведение... но почему то руками все равно можно менять текст...

    И еще вопрос: как поставить высоту выпадающего списка такой, чтобы все элементы были видны, без скроллинга? А ТО У МЕНЯ ЛИШЬ 2 ЭЛ-ТА, А ПРИХОДИТСЯ ПРОКРУЧИВАТЬ... Не нашел в MSDN методов типа SetDropDownHeight...
      Цитата ГостьПроездом @
      То есть стиль устанавливаю в CBS_DROPDOWNLIST, который и отвечает за такое поведение... но почему то руками все равно можно менять текст...

      А ты уверен что стиль установился? Посмотри что возвращает команда.
      Цитата ГостьПроездом @
      И еще вопрос: как поставить высоту выпадающего списка такой, чтобы все элементы были видны, без скроллинга? А ТО У МЕНЯ ЛИШЬ 2 ЭЛ-ТА, А ПРИХОДИТСЯ ПРОКРУЧИВАТЬ... Не нашел в MSDN методов типа SetDropDownHeight...

      Если ты его создаешь не программно, то просто ручками вытяни нужный размер. Иначе - задай соответствующий параметр.
        Цитата ГостьПроездом @
        То есть стиль устанавливаю в CBS_DROPDOWNLIST, который и отвечает за такое поведение... но почему то руками все равно можно менять текст...

        ExpandedWrap disabled
          m_cbEnqCfg.ModifyStyle(CBS_DROPDOWN | CBS_SIMPLE, CBS_DROPDOWNLIST,SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED);

        Цитата ГостьПроездом @
        И еще вопрос: как поставить высоту выпадающего списка такой, чтобы все элементы были видны, без скроллинга? А ТО У МЕНЯ ЛИШЬ 2 ЭЛ-ТА, А ПРИХОДИТСЯ ПРОКРУЧИВАТЬ... Не нашел в MSDN методов типа SetDropDownHeight...

        ExpandedWrap disabled
          m_cbEnqCfg.SendMessage(CB_SETMINVISIBLE ,100,0);
        Сообщение отредактировано: ElcnU -
          Цитата

          m_cbEnqCfg.ModifyStyle(CBS_DROPDOWN | CBS_SIMPLE, CBS_DROPDOWNLIST,SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED);


          Все по-прежнему. Проверял результат: ModifyStyle возвращает истину, то есть все успешно, но поведение то не меняется. Спасите, люди!!!
            Цитата ГостьПроездом @
            Все по-прежнему. Проверял результат: ModifyStyle возвращает истину, то есть все успешно, но поведение то не меняется. Спасите, люди!!!

            поменяй в редакторе ресурсов этот стиль

            Добавлено
            type -> DropList должен быть
              Вот теперь -ОК :yes:
              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
              0 пользователей:


              Рейтинг@Mail.ru
              [ Script execution time: 0,0309 ]   [ 16 queries used ]   [ Generated: 3.05.24, 07:58 GMT ]