Hi Leuts, hat einer ne Idee wie man bei der Funktion MessageBox eine andere Schrift / Schriftgröße vorwählen kann ? Da MessageBox eine Funktion von CWnd ist, und es ebenfalls eine Funktion CWnd::SetFont() gibt, besteht da sicherlich irgendein Lösungsansatz. Aber ich habe keine Ahnung wie...... Greets Karlheinz
MessageBox ist eine Win32-API-Funktion, die von CWnd::MessageBox aufgerufen wird:
1 | int CWnd::MessageBox(LPCTSTR lpszText, LPCTSTR lpszCaption, UINT nType) |
2 | {
|
3 | if (lpszCaption == NULL) |
4 | lpszCaption = AfxGetAppName(); |
5 | int nResult = ::MessageBox(GetSafeHwnd(), lpszText, lpszCaption, nType); |
6 | return nResult; |
7 | }
|
Das bedeutet, daß die Darstellung sich nicht mit irgendwelchen anderen Memberfunktionen von CWnd beeinflussen lässt, weil eben nicht das verwendete Fenster von CWnd gekapselt wird. Am einfachsten wäre es, eine eigene MessageBox-Funktion von CDialog abzuleiten und in der SetFont etc. zu implementieren. Ein bisschen Handarbeit gibt es bei der dynamischen Anpassung der Größe des Dialoges an die Menge des darzustellenden Textes, Tips dafür müssten unter www.codeproject.com oder einer ähnlichen Seite auffindbar sein. Alternativ ließe sich mit einem sogenannten System-Hook der Aufruf der Win32-API-Funktion abfangen, aber das ist nicht ganz trivial.
Ich programmiere schon recht lange mit Qt (seit Version 1.4), und wenn ich dann sehe, welche trivialen Sachen dem MFC-Programmierer regelrecht Klimmzüge abverlangen, kann ich nur den Kopf schütteln. Warum tut sich irgendwer das an? Es muss ja auch nicht unbedingt Qt sein. Ich glaube, so ziemlich alles ist besser als MFC.
Zur Ehrenrettung der MFC muss man aber auch sagen, dass ihr Grunddesign länger zurückliegt als das Alter so manches Forumteilnehmers hier ist :-) Wesentliche MFC Mechanismen stammen aus einer Zeit in der ein C++ ISO Standard nichts weiter als das Glitzern in Stroustrups Augen war.
Also erstmal Danke für eure Mühe, Jungs. Im Prinzip finde ich die MFC gar nicht schlecht, und seis auch nur weil ich keine Vergleichsmöglichkeiten habe :-) Derzeit finde ich es allerdings schon schlimm, weil ich fast an jeder Ecke der Software die Schriftgrößen ändern muß, und das geht wirklich jedesmal anders. Aber jede Medaille hat halt zwei Seiten..... Greets Karlheinz
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.