Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Group Box / Radio Buttons

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
11.08.2003, 13:19 Uhr
0xdeadbeef
Gott
(Operator)


Moin,

Ich hab mal wieder Probleme mit der MFC. Es geht um folgendes: Ich hab hier einen modeless dialog, der eine Instrumententafel und eine Art Leinwand enthält, in der ich dann ein bisschen rummale. Die Instrumententafel soll unter anderem auch eine Gruppe von Radio Buttons enthalten. Ich geh also in den VS-Resource-Editor, hole mir eine Group Box, setze zwei Radio Buttons rein und fasse alle drei zu einer Gruppe zusammen.
Wo kriege ich jetzt ein Event her, dass sich der Wert der Radio-Button-Gruppe verändert hat?
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
11.08.2003, 14:09 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


meinst du sowas beefy?


C++:

//in der MessageMap einfügen ausserhalb von {{//  ... //}}
ON_COMMAND_RANGE(IDC_ZOOM100_RADIOBUTTON_CAM1, IDC_ZOOM3200_RADIOBUTTON_CAM1, ZoomChangeCam1)


--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 11.08.2003 um 14:10 Uhr von Heiko editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
11.08.2003, 14:17 Uhr
~split
Gast


Mach einfach bei einem Radio-Button Gruppe an , und vergib eine Membervariable m_iRadio vom Typ int !


jetzt kannste hin und her switchen .
if(m_iRadio == 0)
{
//mach was
}
else
{
//mach was...
}

m_iRadio kann entweder 0 oder 1 sein , da du ja Gruppe bei deinem ersten Radiobutton aktiviert hast... das brauchste übrigens nur bei einem zu machen , und nich bei beiden..

hope this helps.

mfg split
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
11.08.2003, 14:38 Uhr
0xdeadbeef
Gott
(Operator)


@Heiko: Müsste ON_COMMAND_RANGE nicht die zwei äußeren Werte eines zusammenhängenden Intervalls von Command-IDs erhalten? Ich hab doch gar keine Command-IDs, die ich weitergeben könnte, sondern lediglich 3 Control-IDs.

@Split: Es geht mir darum, dass ich genau mitkriegen möchte, wann der Wert der Radio-Button-Gruppe sich geändert hat, damit ich darauf reagieren kann. (einen repaint triggern, in diesem speziellen Fall).
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
11.08.2003, 14:46 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Vergas ich zu erwähnen
Ja du musst die Radiobuttons so anelgen das die Id's hintereinander stehen.
Kannst du dir in der Ressourcendatei anschauen ob das der Fall ist.
Wenn nicht musst du die buttons noch einmal neu und hintereinander anlegen. Dann sollte das gehen.

Das sind controlIDs
3. parameter ist der name der funktion die er dann ausführen soll

wenn du nur zwei buttons hast ist das natürlich einfacher abzufangen ob du drauf geklickt hast.

Wenn ja alten status mit neuem vergleichen oder was meinst du genau?
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 11.08.2003 um 14:48 Uhr von Heiko editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
11.08.2003, 14:53 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Probier folgendes:
Füg 3 Radios in ein Gruppenfeld und aktivier beim ersten die Option "Gruppe"

C++:
void CTestDlg::OnRadioKlick(UINT nID)
{
switch(nID)
{
case IDC_RADIO1:
    AfxMessageBox("Das war das 1.Radio");
    break;
case IDC_RADIO2:
    AfxMessageBox("Das war das 2.Radio");
    break;
case IDC_RADIO3:
    AfxMessageBox("Das war das 3.Radio");
    break;
default:
    AfxMessageBox("Daneben geklickt !?");
    break;
}


Und

C++:
BEGIN_MESSAGE_MAP(CTestDlg, CDialog)
//{{AFX_MSG_MAP(CTestDlg)

ON_COMMAND_RANGE(IDC_RADIO1, IDC_RADIO3, OnRadioKlick)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()


mfg mike
--

Dieser Post wurde am 11.08.2003 um 14:56 Uhr von mike editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
11.08.2003, 15:02 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


@mike
Sehr löblich dein ausführliches Beispiel
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
11.08.2003, 15:10 Uhr
mike
Pinguinhüpfer
(Operator)


Danke
mfg
PS: @Heiko:

--

Dieser Post wurde am 11.08.2003 um 15:10 Uhr von mike editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
11.08.2003, 15:15 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


@mike
Ich glaub wir verschieben das auf icq sonst müllen wir nur das forum voll
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
11.08.2003, 16:16 Uhr
0xdeadbeef
Gott
(Operator)


Danke, das läuft jetzt. Noch eine Frage - wie krieg ichs hin, die Captions (oder generell Attribute) von Controls zu setzen, die ich nur per ID habe? Oder, wie verknüpfe ich eine Control mit einem String aus einer String-Table, ohne ein Interface zum Objekt generieren zu müssen - wenn ich die Objekte gruppiert habe, ist das nämlich so einfach scheinbar nicht mehr möglich.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 11.08.2003 um 16:36 Uhr von 0xdeadbeef editiert.
 
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: