mikrocontroller.net

Forum: PC-Programmierung Visual C++: Mehrere AUTORADIOBUTTONs in einem Dialogfenster nutzen; *.rc - File


Autor: Moritz Nöltner (mox-mox)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
Ich benutze M$ Windows XP; Visual Studio 2008 Express Edition; Visual 
C++.
Ich möchte in einem Dialogfenster mehrere AUTORADIOBUTTONS  nutzen. 
Soweit ist das auch kein Problem. Aber wenn ich nun mehrere 'Gruppen' 
von AUTORADIOBUTTONs verwenden möchte, dann kann ich immer nur einen 
auswählen, statt einen pro 'Gruppe'.

Beispiel:
IDD_SETCOM DIALOG DISCARDABLE  22, 17, 345, 130
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
...
...
GROUPBOX  "COMPORT",    100, 05, 05, 45, 105, WS_TABSTOP 
  AUTORADIOBUTTON "COM1",    101, 10, 15, 30, 10
  AUTORADIOBUTTON "COM2",    102, 10, 25, 30, 10

GROUPBOX  "BAUDRATE",    200, 55, 05, 75, 105, WS_TABSTOP
  AUTORADIOBUTTON "600",    201, 60, 15, 30, 10
  AUTORADIOBUTTON "1200",    202, 60, 25, 30, 10
  AUTORADIOBUTTON "2400",    203, 60, 35, 30, 10
...
...
PUSHBUTTON  "Open Comport",    IDOK,152,115,50,11,WS_GROUP
END

Das ganze befindet sich in einem Ressourcefile, und ist ein erweitertes 
Beispielprojekt des Synaptics SDK: 
http://www.synaptics.com/sites/default/files/SynCO... 
(Synplot), das ich um die Fähigkeit, die Messdaten über die Serielle 
Schnittstelle zu senden erweitern möchte.

Wie sorge ich dafür, dass in dem Dialogfenster mehrere 'Gruppen' (in den 
Groupboxes) von AUTORADIOBUTTONs sind, bei denen ich innnerhalb jeder 
'Gruppe' einen Radiobutton auswählen kann?
(Bin noch n ziemlicher Anfänger was C++ angeht, vorher nur C, wenn also 
irgendwo was total blödsinniges da stehen sollte,  bitte sagen)

Gruß,
mox-mox

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

der jeweils erste Radiobutton einer Gruppe muß das Flag WS_GROUP haben.
Keine Ahnung wie das mit VS2008Express geht, auch die von Dir gepostete 
Syntax ist mir unbekannt. Normalerweise sieht das im .rc File etwa so 
aus:
  CONTROL  "Rotate &0 Degrees",IDC_ROTATE_0,"Button", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,10,10,69,10
  CONTROL  "Rotate &90 Degrees",IDC_ROTATE_90,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,10,24,73,10
  CONTROL  "Rotate &180 Degrees",IDC_ROTATE_180,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,10,38,76,10
  CONTROL  "Rotate &270 Degrees",IDC_ROTATE_270,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,10,52,76,10
(modifizierter Ausschnitt aus BezelTest.rc aus Deinem angehängten zip)

CU

Autor: Moritz Nöltner (mox-mox)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey, danke für die schnelle Antwort!! Hat das Problem zu 100 % gelöst :)
Ich hab das einfach mit Bitwise Oder angefügt:
GROUPBOX  "COMPORT",    100, 05, 05, 45, 105, WS_TABSTOP | WS_GROUP
Zu der Schreibweise kann ich nix weiter sagen, als dass ich die so 
vorgefunden habe, und nur erweitert hab (also in Analogie Buttons, Text 
und ein Dialogfenster zugefügt habe). Die schreibweise stimmt aber auch 
mit der Schreibweise überein, die sich auf der M$ Webseite findet:
http://msdn.microsoft.com/en-us/library/aa381003(VS.85).aspx

Gruß,
mox-mox

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

hab grad nochmal geschaut, die Syntax von Dir war natürlich völlig OK. 
Ich kannte nur bisher nicht die Variante:
AUTORADIOBUTTON "COM1",    101, 10, 15, 30, 10
Sondern nur die Variante:
CONTROL "COM1", 101, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 10, 15, 30, 10
Was im Endeffekt aber wohl dasselbe ist. Letzteres wird so auch vom 
Dialogeditor (zumindest bis VS2005Pro) erzeugt.
Man lernt halt nie aus.

CU

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.