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


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




 50 - А можно GetDlgItem и не пользоваться / Диалоговые окна / Visual C++

Шаг 50 - А можно GetDlgItem и не пользоваться

Для этого можно все элементы поместить в массив. Правда, предварительно нужно их связать с элементами управления, используя DDX.

50_1.gif (2387 b)

Объявляем массив указателей на элементы:

///////////////////////
// CTest5Dlg dialog

#include "afxtempl.h"

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

	// Dialog Data
	//{{AFX_DATA(CTest5Dlg)
	enum { IDD = IDD_TEST5_DIALOG };
	CEdit	m_EdCtrl2;
	CEdit	m_EdCtr1;
	CString	m_Ed2;
	CString	m_Ed1;
	//}}AFX_DATA
	CArray <CEdit*,CEdit*>  TestArray;
.......
};

В OnInitDialog заполняем его.

BOOL CTest5Dlg::OnInitDialog()
{
	m_Ed1 = "Hello";
	m_Ed2 ="Word";
	CDialog::OnInitDialog();

	TestArray.Add(&m_EdCtr1);
	TestArray.Add(&m_EdCtrl2);

	// Add "About..." menu item to system menu.
......
}

А по нажатию на кнопку производим групповую операцию:

void CTest5Dlg::OnButton1() 
{
	for (int x=0;x<TestArray.GetSize();x++)
	{
		TestArray.GetAt(x)->SetWindowText("Group Operation");  
	}
}

Вот и отлично. А вот если элементы разные, то Вы можете взять за основу CObject, который родитель всех.

CArray <CObject*,CObject*>  TestArray;

И приводим к нужному классу.

void CTest5Dlg::OnButton1() 
{
	for (int x=0;x<TestArray.GetSize();x++)
	{
		CEdit* ce=(CEdit*)TestArray.GetAt(x);  
		ce->SetWindowText("Group Operation");
	}
}

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