Member 14154162 Ответов: 1

Как включить переменные-члены родительского диалога в другое диалоговое окно приложения MFC


Я создал диалоговое окно в MFC VC++. в него я вставил кнопку, чтобы открыть другое диалоговое окно. Я хочу выполнить некоторые задачи во втором диалоге на основе переменных, участвующих в первом диалоговом классе. Так как я могу получить доступ, что во втором классе диалаг.

Что я уже пробовал:

Я не мог достичь этого, хотя и пробовал следующие способы.
1)я объявил все параметры как публичные, которые мне требуются
2)я унаследовал этот первый диалоговый класс вместе с классом CDialog во второй диалоговый класс, но там были ошибки сборки.
Пожалуйста, помогите мне. Это будет очень полезно для моего проекта.

Richard MacCutchan

Создайте метод в родительском элементе, который может возвращать данные, необходимые дочернему элементу. Кроме того, добавьте необходимые данные в конструктор дочернего диалогового окна. Любой из них лучше, чем разоблачение ваших переменных.

1 Ответов

Рейтинг:
0

Michael Haephrati

Вы можете сделать это легко. 2-й диалог открывается вызовом Метод domodal()[^] но перед вызовом этой функции вы можете присвоить значения любым открытым переменным-членам во 2-м диалоговом классе.
Предположим, что 2-й диалог имеет "firstmarameter" и "another parameter" в качестве переменных-членов. Мы можем предположить, что первый диалог также имеет переменную-член с именем "data", поэтому вы можете видеть, как присваивать значения из одного диалога в другой:

void CPrimary1Dlg::OnBnClickedSecondBtn()
{
	CSecondDlg Dlg;
	Dlg.firstparameter = data;  // assign a value from the 1st dialog to the 2nd 
        Dlg.anotherparameter = "This is my new dialog"; 
// assign a value to the 2nd dialog

	Dlg.DoModal(); // Launch the 2nd dialog
}