JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.phpMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Textgröße verändern funktioniert unter XP nicht

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik
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

BeitragVerfasst am: 24.05.2003, 10:49    Titel: Textgröße verändern funktioniert unter XP nicht Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Jörg
JLI MVP
JLI MVP



Anmeldedatum: 19.07.2002
Beiträge: 182
Wohnort: Siegen/NRW
Medaillen: Keine

BeitragVerfasst am: 24.05.2003, 13:28    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
abc_d
JLI Master Trainee


Alter: 35
Anmeldedatum: 27.01.2003
Beiträge: 615

Medaillen: Keine

BeitragVerfasst am: 24.05.2003, 14:15    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
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

Impressum