Text formatieren?
-
Gibt es eine gute möglichkeit den Text in einem Dialog zu formatieren(farbe, größe etc.)?
Gruß,
Heimwerkerking
-
Servus,
japp gibt es.
Für Schriftgröße / -art, MSDN -> CreateFont()
CFont font; VERIFY(font.CreateFont( 12, // nHeight 0, // nWidth 0, // nEscapement 0, // nOrientation FW_NORMAL, // nWeight FALSE, // bItalic FALSE, // bUnderline 0, // cStrikeOut ANSI_CHARSET, // nCharSet OUT_DEFAULT_PRECIS, // nOutPrecision CLIP_DEFAULT_PRECIS, // nClipPrecision DEFAULT_QUALITY, // nQuality DEFAULT_PITCH | FF_SWISS, // nPitchAndFamily "Arial")); // lpszFacename //m_ctrEdit ist Member von einem EditCtrl m_ctrEdit.SetFont(&font);
Farbe mit WM_CTLCOLOR. Mehtode OnCtlColor einfügen:
HBRUSH CDeinDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); if (pWnd->GetDlgCtrlID()==ID_CONTROL) { pDC->SetTextColor(RGB(255,0,0)); //Textfarbe pDC->SetBkMode(TRANSPARENT); HBRUSH B = CreateSolidBrush(RGB(192,192,192)); //Hintergrundfarbe return (HBRUSH) B; } return hbr; }
Ich denke mal das sollte dir weiterhelfen
*winke*
Hellsgore
-
Entschuldigung,aber,
was soll man darauf antworten?
den Text auf einem Dialog?
Wie kommt der denn bei dir dahin und formatieren?Meinst du in einem Steuerelement z.B Richeditfeld?
Vielleicht steh ich aber nur auf dem schlauch dann verzeih, äh verzeiht mir.
-
ähm... sorry,
dachte da an den Text innerhalb von nem Statictext feld wollte ich eignetlich auch zu schreiben habs dann wohl doch irgendwie verpennt.
-
BOOL CDeinDialog::OnInitDialog() { CDialog::OnInitDialog(); LOGFONT lf; memset(&lf, 0, sizeof(LOGFONT)); strcpy(lf.lfFaceName, "Arial"); lf.lfWeight=FW_HEAVY; lf.lfUnderline=TRUE; lf.lfHeight = 40; font.CreateFontIndirect(&lf); GetDlgItem(IDC_STATIC_DEIN_STEURELEMENT)->SetFont(&font); return TRUE; //ect. ... }
Jetzt noch ne protected Variable
CFont font;
In "lf" kannst du noch mehr übergeben, schau in die MSDNGerhardt
-
wo ihr grad so schön dabei seit schreib ich meine frage einfach mal mit hier rein
gibts ne möglichkeit in einem Edit/RichEdit-Feld die wörter unterschiedlich zu formatieren? einige blau, die andern schwarz zum beispiel...
-
Ja, kann man. Aber nur beim RichEdit
-
guckst du hier:
-
jo danke
-
muss man für richedit-felder noch irgendwas spezielles im code verändern? immer wenn ich ein richedit-feld in ein programm einbau wird das beim ausführen mit code null beendet ohne dass ich irgendwas vom programm sehe. hab auch das beispiel aus dem link da oben abgeschrieben, das klappt auch nich.
-
Hallo,
eine Falle, in die man als erstmaliger CRichEditCtrl-Benutzer immer wieder tappt: man muß einmal AfxInitRichEdit aufgerufen haben.
Die MSDN schreibt dazu:
Important If you are using a rich edit control in a dialog box (regardless whether your application is SDI, MDI, or dialog-based), you must call AfxInitRichEdit once before the dialog box is displayed. A typical place to call this function is in your program’s InitInstance member function. You do not need to call it for each time you display the dialog box, only the first time. You do not have to call AfxInitRichEdit if you are working with CRichEditView.
MfG
-
wieder n problem gelöst, danke
-
Und wo muss ich AfxInitRichEdit(); eingeben???
Habs in die OnInitDialog Funktion gepackt, will aber nicht wirklich tun...MfG WirrWar2850.
-
Hallo,
platziere den Aufruf in die Funktion InitInstance.
MfG
-
Danke, jetzt hats auch geklappt... aber jetzt ist das Prog. vollkommen futsch, beim Start meines Programmes kommt jetzt immer "Es wurde versucht einen nicht unterstützten Vorgang durchzuführen" o.ä.
MfG WirrWar2850.