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


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




 43 - Что делать с классами элементов управления / Диалоговые окна / Visual C++

Шаг 43 - Что делать с классами элементов управления

В прошлом шаге мы посмотрели, что если класс это элемент управления, то производить внешнюю инициализацию не всегда корректно. Тут выход простой. Завести переменную. Дополнительную.

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

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

	// Overrides
	....
};

Инициализировать ее:

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

А вот в OnInitDialog() производить инициализацию:

BOOL CMyDialog::OnInitDialog() 
{
	CDialog::OnInitDialog();
	m_Ed1.SetWindowText(m_Ed1_str); 
	// TODO: Add extra initialization here
	return TRUE;	// return TRUE unless you set the focus to a control
			// EXCEPTION: OCX Property Pages should return FALSE>
}

Но уже после вызова OnInitDialog(), чтобы элементы были созданы. Но на этом неприятности не закончились. Вы не сможете получить данные назад, так как элемент управления будет разрушен.


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