Problem beim Ändern der Schriftart (Logfont)

Heike711

Grünschnabel
Hallo,
ich habe eine Logfont-Struktur erstellt. Ich kann den Text auch unterstreichen, durchstreichen oder kursiv schreiben, jedoch ist es egal welche Schriftart ich angebe (Arial, Times New Roman,...), die Schrift sieht immer gleich aus.
Jetzt meine Frage, woran liegt das? Was habe ich falsch gemacht? :confused:

Hier der Codeausschnitt:
Code:
BOOL SISText::Paint(HDC hdc) 
{ 
    RECT rect; 
    LOGFONT font; 
    HFONT hFontNew, hFontOld; 

    rect.left = 0; 
    rect.top = 0; 
    rect.right = 100; 
    rect.bottom = 200; 

    
    font.lfHeight= -20; 
    font.lfWidth=0; 
    font.lfEscapement=0; 
    font.lfOrientation=0; 
    font.lfWeight=FW_NORMAL; 
    font.lfItalic=false; 
    font.lfUnderline=false; 
    font.lfStrikeOut=false; 
    font.lfCharSet=ANSI_CHARSET; 
    font.lfOutPrecision=OUT_DEFAULT_PRECIS; 
    font.lfClipPrecision=CLIP_CHARACTER_PRECIS; 
    font.lfQuality=DEFAULT_QUALITY; 
    font.lfPitchAndFamily=FF_DONTCARE; 
    (font.lfFaceName,_T("Arial")); 
    
    hFontNew = CreateFontIndirect(&font); 
    hFontOld = (HFONT) 
    SelectObject(hdc, hFontNew); 

  
    DrawText(hdc, TEXT("Caption"), -1, &rect, DT_CENTER); 

    return true; 
}

Hoffe, dass ihr mir helfen könnt. Danke schon mal im voraus.
Lg Heike
 
Hallo,
danke erst mal für deine Hilfe. Hab das geändert, wenn ich jetzt anstelle von "Arial" zum Beispiel "Times New Roman" schreibe. Sieht die Schriftart immer noch genauso aus wie vorher.

Habe jetzt auch noch das versucht:
Code:
_tcscpy(font.lfFaceName,_T("Arial"));

Aber auch da kommt es zu keiner Veränderung. Naja werde jetzt damit herumbasteln.

Heike
 
Zuletzt bearbeitet:
Leider bringt mir selbst das nicht das gewünschte Ergebnis. Könnte es sein, dass Windows CE das nicht ändern kann? Aber müsste das dann nicht in der Hilfe stehen, bei LOGFONT?

Danke aber für deine Mühe und Hilfe.
Heike
 
Hallo,

mit CE kenne ich mich leider überhaupt nicht aus. Prinzipiell müsste es aber schon funktionieren. Evt. haben die Fonts unter CE andere Bezeichnungen?

Gruß
MCoder
 
Hi,
schade. Habe leider nirgends gefunden, ob es bei CE anders ist und wenn ja, was anders ist. Auch noch keine anderen Namen gefunden. Werde mich wohl noch weiter mit dem Problem auseinander setzen müssen. Danke für deine Hilfe. Wenn ich eine Lösung habe, werde ich sie auf jeden Fall berichten.

Lg Heike
 
Hi,

ich hab seinerzeit die Logfont für ein CE-System verwendet.
Funktionieren tuts jedenfalls auch wenn der eine oder andere Pferdefuß enthalten ist:(
Ich schaumal ob ich noch was alten Source Code finde.

Wichtig ist das die schriften im richtigen Ordner liegen bei mir wars glaub ich \windows.
Probiers mal mit anderen Systemschriften wie "MS Sans Serif". Nach einigem hin und her lief zumindest die "Comic Sans MS".

Was die Doku zu CE angeht ist die mehr als Buggy. Was drin steht muss nicht klappen und was nicht drin steht kann klappen;) Try and Error ist hier der Weg der Qual;)

Gruß Michael
 
Hi,
danke für deine Antwort. Wäre super, wenn du noch einen alten Source Code finden würdest. Ich schaue mal in welchem Ordner ich die Schriften liegen.
Das mit der Doku ist echt schlimm. Habe jetzt auch das Problem, dass ich eine Datentypwandlung machen muss. Aber er bis jetzt noch nichts akzeptiert hat.

Gruß Heike
 
Hallo,
das mit dem Casten t einwandfrei.

Code:
int i = 5;
DWORD j;
j = (DWORD) i;

soweit kein Problem was bei mir klappt aber nen Warning C4311 ausspuckt ist dieser Code:
Code:
m_Lis_Status.SetItemData( i, (DWORD)( new CString( strTemp ) ) );
m_Lis_Status ist vom Typ CListCtrl. Warum das ne Zeigerverkürzung sein soll, versteh ich nicht wirklich. Sowohl DWORD als auch Pointer brauchen 4BYTE:confused:

Zur Doku:
Welche Umgebung/Compiler benutzt du? MFC? Benutze MS embedded Visual Studio 4.0 da ist es bis jetzt recht gut gelaufen die MSDN von MS .Net2003 zu verwenden. Die sind besser gegliedert und die Links funktionieren;)

Gruß Michael
 
Zurück