Для этого можно все элементы поместить в массив. Правда, предварительно нужно их связать с элементами управления, используя DDX.
Объявляем массив указателей на элементы:
/////////////////////// // 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"); } }