www.mikrocontroller.net

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


Autor: Karlheinz Druschel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
MessageBox ist eine Win32-API-Funktion, die von CWnd::MessageBox 
aufgerufen wird:
int CWnd::MessageBox(LPCTSTR lpszText, LPCTSTR lpszCaption, UINT nType)
{
  if (lpszCaption == NULL)
    lpszCaption = AfxGetAppName();
  int nResult = ::MessageBox(GetSafeHwnd(), lpszText, lpszCaption, nType);
  return nResult;
}


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.

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist sicherlich sehr hilfreich.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Karlheinz Druschel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.