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


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




 52 - Связь с несколькими переменными в обход ClassWizard / Диалоговые окна / Visual C++

Шаг 52 - Связь с несколькими переменными в обход ClassWizard

Мы посмотрели, что ClassWizard запрещает нам связывать элемент с несколькими переменными. Но мы попробуем его обойти. Делаем первую связь. И копируем в блокнот – описание переменной, DDX макрос, инициализацию переменной.

52_1.gif (9638 b)

А вот теперь ее удаляем и делаем связь с числом используя ClassWizard:

52_2.gif (7372 b)

И начинаем все прописывать из блокнота. Переменную.

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

	CString	m_Ed1;

	// Dialog Data
	//{{AFX_DATA(CTest5Dlg)
	enum { IDD = IDD_TEST5_DIALOG };
	CEdit	m_EdCtrl2;
	CEdit	m_EdCtr1;
	CString	m_Ed2;
	int	m_Ed1Int;
	//}}AFX_DATA
.......
};

DDX макрос

void CTest5Dlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CTest5Dlg)
	DDX_Control(pDX, IDC_EDIT2, m_EdCtrl2);
	DDX_Control(pDX, IDC_EDIT1, m_EdCtr1);
	DDX_Text(pDX, IDC_EDIT2, m_Ed2);
	DDX_Text(pDX, IDC_EDIT1, m_Ed1Int);
	//}}AFX_DATA_MAP
	DDX_Text(pDX, IDC_EDIT1, m_Ed1);
}

Начальную инициализацию в конструкторе:

CTest5Dlg::CTest5Dlg(CWnd* pParent /*=NULL*/)
	: CDialog(CTest5Dlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CTest5Dlg)
	m_Ed2 = _T("");
	m_Ed1Int = 0;
	//}}AFX_DATA_INIT
	.....
	m_Ed1 = _T("");
}

А вот теперь аккуратнее, если Вы в OnInitDialog() делали что-то:

BOOL CTest5Dlg::OnInitDialog()
{
	m_Ed1 = "123";
	m_Ed2 ="Word";
	CDialog::OnInitDialog();
....
}

Собираем проект. Проблем никаких нет, даже запускается.


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