MessageBox Visual C++ Ausgabe einer String-Variable
-
Hallo,
ich habe ein Textfeld, in dieses kann der Benutzer einen Text eigeben. Drückt man dann auf den nebenstehenden Button, so zeigt die Message Box den Inhalt an.
MessageBox(m_strEingabe); //so funktioniert es in Visual C++ 6
In Visual C++ 2008 geht es so aber nicht. Wenn ich dort einen Text ausgeben möchte, so bekomme ich das nur mit einem statischen Text hin, so:
MessageBox(L"Das ist ein Text");
Wie bekomme ich jetzt aber meinen Benutzer Text ausgegeben?
Besten Dank!
-
Es geht genauso...
CString strEingabe(_T("Test")); MessageBox(m_strEingabe);
Geht in jeder VC Version!
Ist es möglich, dass Dir der Unterschied zwischen Unicode und Nicht-Unicode nicht klar ist?
-
Hallo,
besten Dank, habe noch einen Fehler eingearbeitet und zwar ist das anlegen der Membervariable etwas anders, dort habe ich statt String Static gewählt.
Habe sie gelöscht und neu angelegt, als String, jetzt geht es. Danke!
Jetzt habe ich das Problem, dass ich die Optionsfelder (3 Stück) überprüfen möchte, ob eines ausgewählt ist. Wie mache ich diese Abfrage?
Ich habe dazu eine je eine Membervariable angelegt und frage zum Beispiel so ab:
if(m_Information == 1)
MessageBox(m_strBenutzereingabe);
else
xxxxxxxGeht aber so irgendwie nicht, läuft bei 1 immer in den else Zweig, bei 0 in die Anweisung nach if.
Vielen Dank!
-
Moin,
den Fehler hatte ich auch, habe mich darauf geeinigt, dass es sich um einen Compilerfehler handelt.
Schau Dir den disassemblierten Code im Debugger an, vielleicht gibt dies einen Hinweis warum der Vergleich nicht die erwartete Antwort gibt.
Ich habe meinen Vergleich umgeschrieben und keine Prüfung auf 1 vorgenommen, sondern ich konnte auf gesetzt prüfen: if(var){}.
Hilft vielleicht nicht viel...
Gruß
Uwe
-
Man sollte das auch nicht einfach so mit 1 prüfen, dafür gibt es Flags die den entsprechenden Status Anzeigen. Schau dir mal:
GetCheck():
http://msdn.microsoft.com/en-us/library/8tba1y6f(VS.80).aspxGetState( ):
http://msdn.microsoft.com/en-us/library/s2z1f288(VS.80).aspxan. Da wird dir bestimmt weiter geholfen.
-
THX! Muss ich erst noch verstehen!
Ich habe aber eine weitere Frage, ich habe 3 Radio Buttons, möchte, dass nur einer auswählbar ist und das einer beim Start des ganzen Programmes gewählt ist.
ich habe im OnInitDialog() folgendes gemacht(aus www):
CButton *z_Radio1=(CButton *)GetDlgItem(IDC_RADIO2); z_Radio1->SetCheck(1);
Dait ist ein Button markiert, er funktioniert aber nicht!
Das hier passiert erst, wenn man auf einen der Buttons clickt, somit ist klar, warum der noch keine Funktion hat. Wie aber kann ich es ändern?
void Cerste_MFC_SWE_Ü8Dlg::OnBnClickedRadio2() { // TODO: Fügen Sie hier Ihren Kontrollbehandlungscode für die Benachrichtigung ein. m_bInformation = TRUE; m_bAusrufezeichen =FALSE; m_bFragezeichen=FALSE; //UpdateData(TRUE); } void Cerste_MFC_SWE_Ü8Dlg::OnBnClickedRadio3() { // TODO: Fügen Sie hier Ihren Kontrollbehandlungscode für die Benachrichtigung ein. m_bAusrufezeichen =TRUE; m_bInformation = FALSE; m_bFragezeichen=FALSE; UpdateData(TRUE); } void Cerste_MFC_SWE_Ü8Dlg::OnBnClickedRadio4() { // TODO: Fügen Sie hier Ihren Kontrollbehandlungscode für die Benachrichtigung ein. //UpdateData(TRUE); m_bFragezeichen=TRUE; m_bInformation = FALSE; m_bAusrufezeichen =FALSE; }
-
Das ist totaler Quatsch.
Radios werden mit WS_GROUP zusammengefasst.
Nur der erste Radio bekommt eine Variable zugewiesen.
Der Wert durch DDX_Radio ist 0 für den ersten Radio und n-1 für den nten.
-
Besten Dank.
Meine Radios funktionierten irgendwie nicht so wie ich es wollte, daher machte ich diese Notlösung.
Nun habe ich es aber hinbekommen. Ich hatte die Membervariable mit Control angelegt und nicht mit int.
-3 Radio-Buttons erstellen
-bei dem ersten in den Eigenschaften den Haken bei Gruppe setzen (bzw. TRUE)
-Tabulator Reihenfolge prüfen (die Buttons einer Gruppe sollten aufeinanderfolgen)
-Membervariable nur für den ersten Radio-Button der Gruppe anlegen (Kategorie: Value (nicht Control) Variablentyp: int)Ich habe ein Textfeld wo der Benutzer etwas eingeben kann, dies wird dann in einer Messagebox ausgegeben, je nach Radio Button erscheint neben dem Text der Box ein Informations-, Ausrufe- oder Fragezeichen. Die Membervariable für den ersten Button (= die einzige für die Radiogruppe) heißt hier: m_iRadio
Je nachdem welcher Radiobutton selektiert ist, erhält die Membervariable 0 für den ersten, 1 für den zweiten usw..switch(m_iRadio) { case 0: MessageBox(m_strBenutzereingabe, L"Information",MB_ICONEXCLAMATION); break; case 1: MessageBox(m_strBenutzereingabe, L"Ausrufezeichen",MB_ICONINFORMATION);break; case 2: MessageBox(m_strBenutzereingabe, L"Fragezeichen",MB_ICONQUESTION); break; }
Ach ja, den Quatsch meines letzten Beitrags habe ich natürlich löschen können. Jetzt funktionieren die Buttons ja wie gewünscht.