CFont wieder mal
-
Hallo,
ich möchte eine Schriftart in einem CFrameWnd ändern. Habe mich so ein bischen durchs Forum durchgelesen, aber man muss immer diese LOGFONT-STruktur voll initialisieren. Gibt es denn nicht eine Möglichkeit nur z.B. die Schriftart und Schriftgroesse zu setzen ?
z.B. sowas was leider nicht funzt:
CFont* font; font = new CFont; font->CreatePointFont(200, (LPCTSTR)"Arial"); ...Danke
-
Hi!
Ich hab hier nen Schnipsel, wo ich mir den Font eines Buttons hole und nur fett mache. Ich denke mal, dass kannst du anpassen.

// Schriftarten erzeugen CWnd* pWnd = GetDlgItem(IDC_RDO_KUNDENINFO); LOGFONT lf; CFont* font = pWnd->GetFont(); if (font) { font->GetLogFont(&lf); m_fontNormal.CreateFontIndirect(&lf); lf.lfWeight = FW_BOLD; m_fontFett.CreateFontIndirect(&lf); }
-
Newbie01 schrieb:
CFont* font; font = new CFont; font->CreatePointFont(200, (LPCTSTR)"Arial"); ...BTW: Warum dieser cast? Der ist in jedem Fall falsch, wenn es sich um ein UNICODE Projekt handelt.
-
Hallo danke erstmal für eure Hilfe.
Habe jetzt mal folgendes ausprobiert so wie das auch in der MSDN steht aber ich bekomme eine Compilerfehlermeldung weis jemand woran das liegt und was ich da ändern muss ?
CFont font; LOGFONT lf; memset(&lf, 0, sizeof(LOGFONT)); // zero out structure lf.lfHeight = 12; // request a 12-pixel-height font strcpy(lf.lfFaceName, "Arial"); // request a face name "Arial" VERIFY(font.CreateFontIndirect(&lf)); // create the fonterror C2664: 'strcpy': Konvertierung des Parameters 1 von 'WCHAR [32]' in 'char *' nicht möglich
Danke
-
machmal
strcpy(lf.lfFaceName, _T("Arial"));Hängt mit dem VS2005 zusammen. Da sind alle Texte neu als ... ehm *kann die zwei Typen nie unterscheiden* ... jedenfalls als Wide Char interpretiert. Früher waren es normale char's. Somit muss man nun neu _T("") benutzen, wenn man eben char* will ^^
Richtig erklärt? ^^
Grüssli
-
Hallo,
strcpy(lf.lfFaceName, _T("Arial"));
habe ich auch schon probiert aber haut trotzdem nicht hin da gibts folgende Fehlermeldung:
error C2664: 'strcpy': Konvertierung des Parameters 1 von 'WCHAR [32]' in 'char *' nicht möglich
Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.Muss ich hier etwa wirklich einen STL-reinterpreter_cast durchführen ?