 |
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
abc_d JLI Master Trainee

Alter: 35 Anmeldedatum: 27.01.2003 Beiträge: 615
Medaillen: Keine
|
Verfasst am: 24.05.2003, 10:49 Titel: Textgröße verändern funktioniert unter XP nicht |
|
|
Wenn ich die Schrift mit
Code: |
memset(&lpFont,0,sizeof(lpFont));
lpFont.lfHeight = Height;
lpFont.lfWidth = Width;
lpFont.lfWeight = Weight;
lpFont.lfCharSet = ANSI_CHARSET;
lpFont.lfPitchAndFamily = VARIABLE_PITCH | FF_SWISS;
font = CreateFontIndirect(&lpFont);
|
vergrößern will funktioniert das unter XP nicht (die schrift ist am anfang für einen so kurtzen moment, dass man sie gerade noch sehen kann groß und wird dann auf Standartschriftgröße geändert) . Bei ME/98 funktioniert es einwandfrei.
Um sie zu benutzen verwende ich:
Code: |
HDC hDC;
if(FAILED(lpSBack->GetDC(&hDC)))
{
MessageBox(NULL,"DC ist nicht verfügbar","Fehler beim Zeichnen der Schrift",MB_OK);
}
SelectObject(hDC,font);
// Textfarbe und Ausgabemodus setzen
SetTextColor(hDC,RGB);
SetBkMode(hDC,TRANSPARENT);
TextOut(hDC,x,y,Text,strlen(Text));
// Wichtig !!! Device Context wieder freigeben
DeleteObject(font);
lpSBack->ReleaseDC(hDC);
|
Woran kann das liegen? _________________ http://mitglied.lycos.de/sarti/linuxisevil.gif Linux is evil - get the fact.
Never touch a running System - der Systemling |
|
Nach oben |
|
 |
Jörg JLI MVP


Anmeldedatum: 19.07.2002 Beiträge: 182 Wohnort: Siegen/NRW Medaillen: Keine
|
Verfasst am: 24.05.2003, 13:28 Titel: |
|
|
Du darfst font nicht nach dem ersten Verwenden löschen, sonst gibt's den ja gar nicht mehr im nächsten Frame und kann folglich auch nicht mehr benutzt werden. Der Code sollte vielmehr so heißen:
Code: |
HDC hDC;
if(FAILED(lpSBack->GetDC(&hDC)))
{
MessageBox(NULL,"DC ist nicht verfügbar","Fehler beim Zeichnen der Schrift",MB_OK);
}
HGDIOBJ oldFont=SelectObject(hDC,font);
// Textfarbe und Ausgabemodus setzen
SetTextColor(hDC,RGB);
SetBkMode(hDC,TRANSPARENT);
TextOut(hDC,x,y,Text,strlen(Text));
//alten font wiederherstellen
SelectObject(hDC,oldFont);
// Wichtig !!! Device Context wieder freigeben
//DeleteObject(font); <-- hier nicht löschen!!
lpSBack->ReleaseDC(hDC);
|
Du solltest den Font erst mit DeleteObject() freigeben, wenn er nie wieder verwendet werden wird. _________________ www.messiahzone.de.vu |
|
Nach oben |
|
 |
abc_d JLI Master Trainee

Alter: 35 Anmeldedatum: 27.01.2003 Beiträge: 615
Medaillen: Keine
|
Verfasst am: 24.05.2003, 14:15 Titel: |
|
|
Hab ich mir auch schon gedacht aber wieder verworfen weil ich dachte es hat nichts mit dem Betriebssystem zu tun
thx * 10^3
An dem Bug arbeite ich schon lange!!!! _________________ http://mitglied.lycos.de/sarti/linuxisevil.gif Linux is evil - get the fact.
Never touch a running System - der Systemling |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|