Forum: PC-Programmierung Schriftgröße bei MessageBox ändern


von Karlheinz Druschel (Gast)


Lesenswert?

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

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

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.

von Rolf Magnus (Gast)


Lesenswert?

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.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Das ist sicherlich sehr hilfreich.

von Karl H. (kbuchegg)


Lesenswert?

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.

von Karlheinz Druschel (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.