Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Membervariable in einem Feld

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
15.07.2004, 14:35 Uhr
~Schwabi
Gast


Hey ho,
ich moechte meine Checkboxen (Membervariablen) in ein Feld packen, aber irgendwas klappt da nich.

Zur Zeit mach ich das so:


Code:
char check[9] = {m_check1, m_check2, m_check3, m_check4, m_check5,       m_check6, m_check7, m_check8, m_check9};

for (int i=0; i<=9; i++)
{
    check[i] = TRUE;
    UpdateData(TRUE);
}



Hab ja am Anfang erst gedacht das das gar nich funzt, aber naja.
Warum uebernimmt denn nun aber check[i] die Werte von m_check....
aber m_check... nicht die Werte von check[i] ?????????????????????????????
Das ist mir einduetig zu hoch.
Kann mir da jemand von euch weiterhelfen??

Gruesse Schwabi
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
15.07.2004, 14:42 Uhr
~mike
Gast


Hi!
Hmmm. Also ob ein char array dafür geeignet ist fraglich. Ich würde die Bezeichnungen der CheckBoxes in ein enum bzw. UINT array schmeißen. Denn jede Checkbox hat ne eindeutige Ressource ID. VC++ kann imho den RANGE Befehl nur bei Klickereignissen u.a.

mfg
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
15.07.2004, 14:46 Uhr
~Schwabi
Gast


Hae
So richtig weiss ich nich von was du sprichst.
Was ist ein enum bzw. UINT.??
Bin noch nich so lange dabei, sorry.
Kannst du mir ein Beispiel schicken???
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
15.07.2004, 15:05 Uhr
~mike
Gast


Ein UINT ist ein unsigned int. Du kannst das array auch als int nehmen.
also int array[10]; Jedes Element hat ja ne ID z.B. IDC_CHECKBOX1. Die ganzen haust du ins Array.
array[0] = IDC_CHECKBOX1;
array[1] = IDC_CHECKBOX2;
Dann kannst du schreiben:
for (int i=0; i<9; i++){
((CButton*)GetDlgItem(array[i]))->SetCheck(TRUE);
}

Falls Kompilierfehler erscheinen melde dich nochmals - hab mom leider keinen VC++ zur Hand

mfg
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
15.07.2004, 15:07 Uhr
~Schwabi
Gast


Jo, danke erst ma.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
15.07.2004, 15:22 Uhr
~Schwabi
Gast


Leider hat das nich so ganz geklappt.
Der Compiler meckert zwar nicht, aber wenn ich das Programm laufen lasse stuerzt er mir an dieser Stelle ab.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
15.07.2004, 15:40 Uhr
~Schwabi
Gast


Bei SetCheck() will er uebrigens ein "int nCheck" haben.
Ich kucke mal was man damit so machen kann.
Waere aber fuer jede hilfe dankbar.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
15.07.2004, 18:59 Uhr
~mike
Gast


Hi!
Sorry War schlecht durchdacht. Muss natürlich so ausschaun:

C++:
int array[10];

array[0] = IDC_CHECK1;
array[1] = IDC_CHECK2;
array[2] = IDC_CHECK3;
array[3] = IDC_CHECK4;

CWnd * pWnd = NULL;
for(int i=0; i<10; i++){
  pWnd = (CButton*)GetDlgItem(array[i]);
  if(pWnd->GetSafeHwnd())
    ((CButton*)GetDlgItem(array[i]))->SetCheck(TRUE);
}



mfg
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
16.07.2004, 08:02 Uhr
~Schwabi
Gast


Ah, coole Sache. Danke
Aber sach ma koenntst du mir wenns geht den Code etwas erklaeren ?
Weil was da so richtig passiert versteh ich nich wirklich.

Gruesse Schwabi
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
16.07.2004, 11:05 Uhr
~mike
Gast



C++:
int array[10];

array[0] = IDC_CHECK1; /*Ressource IDs zuweisen*/
array[1] = IDC_CHECK2;
array[2] = IDC_CHECK3;
array[3] = IDC_CHECK4;

CWnd * pWnd = NULL; /*Pointer auf ein Steuerelement*/
for(int i=0; i<10; i++){
pWnd = (CButton*)GetDlgItem(array[i]); /*Pointer auf das Steuerelemenet holen*/
if(pWnd->GetSafeHwnd()) /*Ist das Steuerelement gültig? Existiert es?*/
((CButton*)GetDlgItem(array[i]))->SetCheck(TRUE); /*JA, Häckchen setzen - auf CButton casten, da eine Kombobox ein CButton ist*/
}



mfg
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: