Guten Tag Ich habe verschiedene Radio Buttons auf meiner Oberfläche, nun gebe ich diesen Radio Buttons eine BN_CLICKED Message. Nun möchte ich diesen Buttons (IDC_M10) eine member Variable übergeben, doch sie stehen gar nicht in dieser Liste (ClassWizard --> Member Variables), wo man ihnen die Variable geben kann. Was mache ich falsch? Gruss Hansi
Hansi wrote: > Guten Tag > > Ich habe verschiedene Radio Buttons auf meiner Oberfläche, nun gebe ich > diesen Radio Buttons eine BN_CLICKED Message. Nun möchte ich diesen > Buttons (IDC_M10) eine member Variable übergeben, doch sie stehen gar > nicht in dieser Liste (ClassWizard --> Member Variables), wo man ihnen > die Variable geben kann. > Was mache ich falsch? Gar nichts. Eine Member Variable die die momentane Auswahl repräsentiert wird über über den ersten Radio Button erzeugt. Brauchtst du Control Variablen für alle Radio Buttons, dann lass dir vom Wizard diese für den ersten Radio Button erzeugen. Anschliessend duplizierst du einfach händisch die Member Variablen. Sind ja nur 2 Stellen an denen du eingreifen musst: Im Header File eine Control Variable für den Button anlegen. Einfach die Zeile die der Wizard generiert hat duplizieren und einen neuen Variablennamen dafür vergeben. Im Source Code, im Abschnitt DoDataExchange die Verbindung dieser Control Variablen mit dem Control herstellen. Auch hier wieder: Du siehst dir an, wie der Wizard das eingebaut hast, duplizierst die Zeile und passt die Namen an. PS: Bei 10 Radio Buttons sollte man sich schon überlegen, ob ein Radio Button das richtige Werkzeug ist, oder ob nicht eine ListBox oder eine ComboBox besser wäre.
Danke für deine Antwort, dies habe ich verstanden. Ich möchte jedoch jedem Radio Button eine Member-Variable übergeben, da ich die Buttons programmiertechnisch anordnen und verschieben kann. Dazu brauche ich, soviel ich weiss eine Membervariable. m_cbDD.SetWindowPos(NULL,515,345,0,0,SWP_NOSIZE | SWP_NOZORDER); Oder kann ich dies auch anders lösen? Gruss Hansi
> Oder kann ich dies auch anders lösen?
Ja:
Mit GetDlgItem() erhältst Du ein Fensterhandle bzw. einen Pointer auf
CWnd, mit dem Du auch SetWindowPos aufrufen kannst.
Übergeben musst Du nur die Resource-ID. GetDlgItem ist eine
Memberfunktion von CDialog bzw. eine Win32-API-Funktion (die dann noch
das Fensterhandle des Dialoges übergeben bekommen will).
Hansi wrote: > Danke für deine Antwort, dies habe ich verstanden. > Ich möchte jedoch jedem Radio Button eine Member-Variable übergeben, Du übergibst überhaupt nichts. Du bindest höchstens eine Variable an das Control. > da ich die Buttons programmiertechnisch anordnen und verschieben kann. > Dazu brauche ich, soviel ich weiss eine Membervariable. > > m_cbDD.SetWindowPos(NULL,515,345,0,0,SWP_NOSIZE | SWP_NOZORDER); > > Oder kann ich dies auch anders lösen? Genau das ist die Control-Variable! Im Wizard, mit dem du Variablen erstellst, ist gleich unter dem Namen der Variablen, deren Typ angeführt. Anstatt 'Wert' oder 'Value' wählst du 'Control' aus.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.