Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » EditFeld Fonttype und Größe

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
26.01.2008, 09:07 Uhr
~BurningBrain
Gast


Guten morgen,
ich habe da ein Problem, das ich einfach nicht gelöst bekomme:
Ich habe eine EditBox in meinem Fenster (alles mit WinApi erzeugt) und möchte nun die Schriftart und Schriftgröße der Schrift im Editfeld ändern.
Dazu habe ich mit CreateFont einen Font erzeugt und ihn versucht einzufügen:


hFontSmall = CreateFont(22, 0, 0, 0 , 1000, 0, 0, 0, OEM_CHARSET,
OUT_TT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
FIXED_PITCH | FF_DONTCARE, "Book Antiqua" );

case WM_CTLCOLOREDIT:
{
if ((HWND)lParam == hIP)
{
SelectObject((HDC)wParam, hFontSmall);
}
SetBkMode((HDC)wParam, TRANSPARENT);
return (LONG)hBrush;
break;
}

Die schriftart und Schriftgröße wird auch übernommen, aber leider falsch angezeigt, vor allem, wenn ich den Text markieren möchte:

http://burningbrain.bu.funpic.de/other/unselected.bmp
http://burningbrain.bu.funpic.de/other/selected.bmp

Hat jemand eine AHnung, woran das liegen könnte, bzw, was ich noch verändern muss?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
26.01.2008, 09:35 Uhr
~xxxxx
Gast


lad die bilder mal bitte als png oder jpeg hoch ...
Du erzeugst so auch noch ein paar Memory Leaks, weil du CreateFont aufrufst aber nirgends DeleteObject folgen lässt!

Ein break; nach einem return ist unsinnig!

Wo erzeugst du dein hFontSmall? Sicher das es da noch existiert?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
26.01.2008, 10:33 Uhr
~BurningBrain
Gast


Hier nochmal die Bilder:
http://burningbrain.bu.funpic.de/other/unselected.png
http://burningbrain.bu.funpic.de/other/selected.png

Der Font hFontSmall wird unter WM_CREATE geladen und die anderen Fonts (hFont und hFontBig) die dort geladen werden funktionieren mit TextOut() auch einwandfei.
natürlich werden die Ojekte unter WM_CLOSE und WM_DESTROY wieder freigegeben.

Dachte das break muss dahin, um den case-Block abzuschließen.
Thx, für die Hinweise, aber leider besteht das Problem mit dem Text in den Editboxen weiterhin oO.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
28.01.2008, 18:53 Uhr
BurningBrain



Das Problem hat sich erledigt.
Einfach eine WM_SETFONT an das Edit-Fenster schicken:


C++:
hFontSmall = CreateFont(26, 0, 0, 0 , 1000, 0, true, 0, ANSI_CHARSET,
                                    OUT_TT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
                                    FIXED_PITCH | FF_DONTCARE, "Book Antiqua" );
SendMessage(hIP, WM_SETFONT, (WPARAM)hFontSmall, true);


Vielen Dank an alle, die ich Gedanken gemacht haben.
Für diejenigen, die sich wundern, warum ich das hier hineinschreibe:
Beim Suchen nach der Lösung habe ich diesen Thread als 2. bei Google gefunden, daher ist die Lösung für alle, die das selbe Problem haben schnell zu finden :-).
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
01.02.2008, 14:02 Uhr
slashroot



danke, sowas hab ich auch gebraucht ^^
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: