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 руб./мес


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




 41 - Инициализация переменной вне класса диалога / Диалоговые окна / Visual C++

Шаг 41 - Инициализация переменной вне класса диалога

Если переменные задействованные в DDX объявлены в классе диалога как публичные.

class CMyDialog : public CDialog
{
// Construction
public:
	CMyDialog(CWnd* pParent = NULL);   // standard constructor

	// Dialog Data
	//{{AFX_DATA(CMyDialog)
	enum { IDD = IDD_DIALOG1 };
	CString	m_Ed1;
	CString	m_Ed2;
	//}}AFX_DATA
.....
}

Произвести инициализацию их можно и перед вызовом диалога на экран из функции, которая вызывает диалог. Естественно, что если вы пытаетесь присваивать значения в функции OnInitDialog, то она имеет более высокий приоритет (вызывается позже) и перекроет наши данные. Но мы в OnInitDialog ничего делать не будем. Итак, перед вызовом диалога передаем значения.

void CTest6Doc::OnTestTest() 
{
	cm.m_Ed1= "Test";
	cm.m_Ed2 = "extern";
	cm.DoModal(); 
}

Запускаем и смотрим:

41_1.gif (3572 b)

Точно так же можно воспользоваться этими переменными для получения данных из диалога.

void CTest6Doc::OnTestTest() 
{
	cm.m_Ed1= "Test";
	cm.m_Ed2 = "extern";
	cm.DoModal(); 
	AfxMessageBox(cm.m_Ed1 + " " + cm.m_Ed2);
}

Вот результат, если ничего не менять в диалоге:

41_2.gif (2444 b)


| |
Автор Каев Артем.
[AD]