C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 Урок 20. Класс CComboBox / Уроки MFC / Visual C++

Visual C++. MFC
Урок 20. Класс CComboBox

На этом уроке мы с вами посмотрим основные свойства и методы класса CComboBox. Разумеется, этот класс представляет из себя обычный ComboBox.

Для того, что бы не путаться с кодом от предыдущих уроков, создайте простое окошко (см. урок 3), и добавьте в него меню MyMenu с подменю Dialog (урок 14). При сохранении дайте ему имя resource.rc:

Меню

После этого подсоедините ClassWizard (урок 17) и создайте диалоговое окно (см. урок 18), и сделайте, чтобы это окно показывалось при вызове меню Dialog. Разместите в нашем диалоге элемент ComboBox:

Диалог

После такой подготовительной работы приступаем непосредственно к ComboBox. Для начала посмотрим, что надо сделать, чтобы при появлении диалогового окна в ComboBox'е уже появился некоторый список. Для этого нам сначала надо проделать некоторые предварительные шаги.

Для того, чтобы работать с любым элементом, в том числе и с ComboBox, мы должны задать ему некоторую переменную. Для этого используется такое средство, как ClassWizard. Вызовите его (Ctrl+W) и перейдите на вкладку Member Variables. Обратите внимание, что в строке с идентификатором нашего ComboBox'а (IDC_COMBO1) ничего нет:

ClassWizard

Нажмите на кнопку Add Variable. В появившемся окне Add Member Variable добавьте имя переменной (у нас это m_cbComboBox) и в категории (Category) установите значение Control:

Добавление переменной

Нажмите OK. Теперь в строке ClassWizard для идентификатора IDC_COMBO1 появится переменная m_cbComboBox типа CComboBox:

ClassWizard

Теперь нам надо написать заготовку для кода, который, который будет выполнятся при инициализации диалога. Для этого опять вызовите ClassWizard (если вы его уже закрыли), перейдите в нем на вкладку MessageMaps, выберите класс CDlg в Class name, в списке Object IDs выберите CDlg, и в списке сообщение выберите WM_INITDIALOG:

Сообщение WM_INITDIALOG

После этого нажмите в этом же диалоговом окне на кнопку Add Function и затем на Edit Code. В появившемся окне кода введите следующий текст:

BOOL CDlg::OnInitDialog()
{
    CDialog::OnInitDialog();
    // TODO: Add extra initialization here
    m_cbComboBox.AddString("Igor");
    m_cbComboBox.AddString("Otto");
    m_cbComboBox.AddString("Ушку");
    return TRUE;
    ...

Теперь можете запустить приложение, зайти в меню и убедится, что в ComboBox'е есть три значения. Правда ComboBox выглядит не вполне привлекательным:

ComboBox

Исправим это. Для этого откройте редактор диалогов, щелкните на стрелочке в правой части нашего ComboBox'а, и затем потяните мышкой на нижний край появившегося (пустого) списка:

Измененный ComboBox

После этого ваш ComboBox должен быть уже более привычных размеров.