Kompaktere Schreibweise?

helene1

Mitglied
Hallo,

kennt wer von euch eine kompaktere Schreibweise für

Code:
GetDlgItem(IDC_AUSGANG1)->EnableWindow(true);
GetDlgItem(IDC_AUSGANG2)->EnableWindow(true);
GetDlgItem(IDC_AUSGANG3)->EnableWindow(true);
GetDlgItem(IDC_AUSGANG4)->EnableWindow(true);
GetDlgItem(IDC_AUSGANG5)->EnableWindow(true);
GetDlgItem(IDC_AUSGANG6)->EnableWindow(true);
GetDlgItem(IDC_AUSGANG7)->EnableWindow(true);
GetDlgItem(IDC_AUSGANG8)->EnableWindow(true);

d.h. wie kann ich die Zahl in einer Variable "hochzählen"?

DANKESCHÖN!!
 

MCoder

Erfahrenes Mitglied
Zum Beispiel so:
C++:
UINT nIDList[] = { IDC_AUSGANG1,
                   IDC_AUSGANG2,
                   IDC_AUSGANG3,
                   IDC_AUSGANG4,
                   IDC_AUSGANG5,
                   IDC_AUSGANG6,
                   IDC_AUSGANG7,
                   IDC_AUSGANG8 };

int nCount = sizeof(nIDList) / sizeof(*nIDList);

for( int i = 0; i < nCount; i++ )
{
    GetDlgItem(nIDList[i])->EnableWindow(true);
}
Wenn man sicherstellen kann, dass die IDs lückenlos in aufsteigender Reihenfolge definiert sind, kann man auch schreiben:
C++:
for( UINT i = IDC_AUSGANG1; i <= IDC_AUSGANG8; i++ )
{
    GetDlgItem(i)->EnableWindow(true);
}
Allerdings halte ich die erste Variante für sicherer (wenn auch aufwendiger).

Gruß
MCoder