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.