Hallo ihr Programmierer da draußen, ich habe gerade in einem MFC Projekt von mir eine ComboBox. Diese hat die Variable m_cComboComPort. Jetzt lass ich eine Funktion den PC nach gültigen COM´s suchen. Ich möchte nun "COM1" "COM8" und "COM9" in die ComboBox schreiben. Ich dachte immer, ich soll das durch Semikolas trennen, aber das schiebts bei mir immer wieder in eine Zeile. Hoffe jemand kann mir helfen!
AddString für jedes hinzuzufügende Element http://msdn.microsoft.com/en-US/library/x9y44b47(v=VS.100).aspx
CComSettingsDlg::m_cComboComPort->AddString("COM1"); So sieht das dann bei mir aus, da das in einem anderen Dialog sitzt. Aber jetzt bekomm ich eine Fehlermeldung... Weiß jemand Rat?
ComboBoxer schrieb: > CComSettingsDlg::m_cComboComPort->AddString("COM1"); > > So sieht das dann bei mir aus, da das in einem anderen Dialog sitzt. > Aber jetzt bekomm ich eine Fehlermeldung... Lies die Fehlermeldung. Normalerweise hilft die > So sieht das dann bei mir aus, da das in einem anderen Dialog sitzt. Gaaanz schlecht. Sowas macht man nicht in einer objektorientierten Welt. Das geht den Aufrufer nichts an, wie ein CComSettingsDlg dem Benutzer die möglichen Schnittstellen präsentiert. Das führt genau zu dem selben undurchschaubaren Querzusammenhängen im Code, die vor OOP so gefürchtet waren und im Endeffekt sagt dann der Lernende: Also mir hat OOP überhaupt nichts gebracht. Dein CComSettingsDlg bekommt eine public Funktion, der man die möglichen Schnittstellen übergibt. Wie und mit welchem Control diese Möglichkeiten angezeigt werden (bei dir eine Combobox) ist Sache des CComSettingsDlg und geht ausser dem CComSettingsDlg niemanden etwas an. Aber eigentlich sollte doch der CComSettingsDlg selber sich darum kümmern, welche Schnittstellen es gibt und dem Benutzer präsentiert werden. D.h. es ist schon mal zu hinterfragen, warum sich nicht der CComSettingsDlg selber die möglichen Schnittstellen organisiert sondern warum das von ausserhalb passieren muss.
ComboBoxer schrieb: > CComSettingsDlg::m_cComboComPort->AddString("COM1"); > > So sieht das dann bei mir aus, da das in einem anderen Dialog sitzt. > Aber jetzt bekomm ich eine Fehlermeldung... Wenn Du auf eine Membervariable einer Klasse zugreifen willst, dann musst Du schon eine Instanz der Klasse verwenden, und nicht den Klassennamen. Abgesehen davon ist das vom Objektmodell her natürlich Murks, von außerhalb einer Klasse sollte nicht auf deren Membervariablen zugegriffen werden, schon gar nicht auf enthaltene Controls. Bau Dir eine Liste, übergib die dem Dialog und lass den Dialog in OnInitDialog diese Liste auswerten.
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.