Problem mit SetWindwoText(CWnd)
-
Hi @ all,
ich möchte den Dialogtitel ändern der in eienm neuen Dialog angezeigt werden soll.
//IDS_ALG_VOLLZUGLSTHDR = "Vollzug zur Akte %s, Urkundenrolle %s" wsprintf(szTitel, szGetStr(IDS_ALG_VOLLZUGLSTHDR, szText), szAkte, szUrkNr); SetWindowText(szTitel); if(dlg.DoModal() == IDOK) { return; } CDialog::OnOK();
In der Ausgabe werden nur der Text der aus szGetStr kommt angezeigt aber nicht die szAkte und szUrkNr
Woran kann es liegen?
Gruß CrazyPlaya
-
also wenn ich das richtig sehe, dann liegt das Problem beim wsprintf ich glaub du kannst das nicht einfach so machen.
MSDN schrieb:
int wsprintf(
LPTSTR lpOut, // pointer to buffer for output
LPCTSTR lpFmt, // pointer to format-control string
... // optional arguments
);Du übergibst die also optionale Parameter, der added die ja nicht dazu (glaub ich)
was für Datentypen sind es denn?? Wenn es alles CStrings sind dann adde die doch so://IDS_ALG_VOLLZUGLSTHDR = "Vollzug zur Akte %s, Urkundenrolle %s" szTitel += szGetStr(IDS_ALG_VOLLZUGLSTHDR, szText) + szAkte + szUrkNr; //alternativ //szTitel.format("%s %s %s",szGetStr(IDS_ALG_VOLLZUGLSTHDR, szText), szAkte, szUrkNr); SetWindowText(szTitel); if(dlg.DoModal() == IDOK) { return; } CDialog::OnOK();
-
Polofreak schrieb:
also wenn ich das richtig sehe, dann liegt das Problem beim wsprintf ich glaub du kannst das nicht einfach so machen.
Das geht schon, der String wird auch beim Debuggen, in szTitel richtig angezeigt.
Nur bei der Übergabe an SetWindowText, da scheint was falsch zu laufen.
-
Wenn du den Titel des Dialoges beim Aufruf ändern möchtest, musst du die OnInitDialog() überschreiben:
BOOL MeinDialog :: OnInitDialog() { CDialog :: OnInitDialog(); //evtl. noch irgendwas machen szTitel += szGetStr(IDS_ALG_VOLLZUGLSTHDR, szText) + szAkte + szUrkNr; SetWindowText(szTitle); return(true); }