Etwas im Dialogfenster anzeigen?
-
hi ich hab eine Frage und zwar will ich im Dialog Fenster etwas anzeigen
in der Konsole hab ich ein Array ausgebeben das 19*19 chars hatte und in c++ hab ich keine Idee wie ichs im DialogFenster anzeigen soll
Habs im Steuerelement Edit probiert und TextOut :<void Karte::ausgabe() { int i,j; for(i=0;i<karten_hoehe;i++) { for(j=0;j<karten_breite;j++) { printf("%c", schatzkarte[i * karten_breite + j].offen); } printf("\n"); } }
-
Du musst irgendwelche Controls dafür benutzen. Ein Edit Control würde gehen (ist aber eher für die Eingabe gedacht). Ein Static Control würde ich vorschlagen. Die Methode, die du zum Zuweisen eines Texts benutzen kannst, lautet SetWindowText. Um die Methode für dein Control auszuführen, kannst du entweder eine Control-Variable anlegen (Rechtsklick=>Variable hinzufügen) oder den Weg über GetDlgItem gehen.
-
^^oder statt 'printf' mit 'sprintf' in den speicher printen und am ende der schleifen: editControl.SetWindowText(...);
-
kann man im Klassenassistenten für ein Statisches Feld einen CString/char array mit 500 plätzen erstellen dann könnte ich alles in der schleife rein kopieren und ausgeben?
-
Seryoga schrieb:
kann man im Klassenassistenten für ein Statisches Feld einen CString/char array mit 500 plätzen erstellen dann könnte ich alles in der schleife rein kopieren und ausgeben?
Geht nicht, soweit ich weiß. Mach es doch einfach so, wie vorgeschlagen. Du nimmst GetDlgItem oder eine Control-Variable und weist über SetWindowText zu. Oder du nimmst SetDlgItemText. Und den String, den du dabei übergeben willst, setzt du vorher mit deiner Schleife zusammen (nur dass du statt printf sprintf nimmst und in ein char-Array schreibst).
-
Was für einen Parameter will SetWindowText() haben?
void CSchatzsucheDlg::ausgabe() { //CStatic *pStat1 = (CStatic*)GetDlgItem(IDC_STATIC1); char str[500]; int i,j; for(i=0;i<karten_hoehe;i++) { for(j=0;j<karten_breite;j++) { // str[i * karten_breite + j] = offen[i * karten_breite + j]; sprintf( &str[i * karten_breite + j], "%c\n", offen[i * karten_breite + j]); } } m_ctlStat1.SetWindowText(str); }
-
Einen Zeiger auf einen (C-)String.
http://msdn.microsoft.com/en-us/library/ms633546(VS.85).aspx