Combobox

  • Автор темы Irisha
  • Дата начала
I

Irisha

Гость
#1
Здравствуйте! Проект VS2008 MFC Application. На одном диалоге имеется несколько Edit-ов, на другом имеется Combobox. Как из edit-ов одного окна добавить строки в combobox другого окна? Диалоги создавались с помощью редактора ресурсов. С контролами связаны переменные, если переменной типа Value передать строку, то все в порядке и она появляется в контроле, а если эту же строку - переменной типа Control (AddString) то список не заполняется(((
 
V

vol4ek88

Гость
#2
Создаем приложение MFC App, убираем галочку "использовать библиотеки с поддержкой юникода", остальные настройки на Ваше усмотрение. Добавим на форму Edit. Добавим мастером переменную edit и обработчик нажатия клавиши OK. Теперь к ресурсам добавим второй Dialog. Щелкаем по нему правой кнопкой мыши -> Добавить класс (назовем его dial). Добавим на форму ComboBox и переменную ему combo. Теперь переходим в окно классов, находим там dial и щелкаем по нему правой кнопкой мыши -> Добавить -> Переменную. Добавляем CString (в списке переменных у меня (VS2010) ее нет, поэтому пишем ручками) имя переменной stroka. Опять идем в окно классов, находим dial, щелчок правой кнопкой мыши -> Мастер классов -> Виртуальные Функции -> Добавить функцию -> в левом списке ищем OnInitDialog. Жмем на кнопку добавить функцию - применить - окей.

Если все правильно сделано, к проекту добавится два файла dial.cpp и dial.h
Открываем файл имя_проекта_Dlg.cpp



в начало файла добавим
C++:
 #include "dial.h"
в файл dial.cpp в ф-цию OnInitDialog (она в самом низу)

C++:
BOOL dial::OnInitDialog()
{
CDialogEx::OnInitDialog();

combo.AddString(stroka); // вот эту вот строку

return TRUE; 

}

ну и наконец обработчик кнопки OK главного окна (имя_проекта_Dlg.cpp)


C++:
dial cd;
edit.GetWindowTextA(cd.stroka);
cd.DoModal();
{

}

ну вот и все. Посоветую Вам вместо этого использовать запись данных в файл (например INI). Этим Вы еще и решите проблему сохранения настроек приложения. (по желанию).