CFont ändert Position bei anderem Computer



  • Hallo,

    ich habe ein kleines Problem mit CFont. Ich habe für eine Projektarbeit eine dialogfeldbasierende Anwendung zur Steuerung eines Videorekorders geschrieben.

    Auf dem Dialogfeld gibt es ein Objekt "fontTcPlayer" der Klasse CFont, welches den Timecode des Videos (steht in CString strTcPlayer)anzeigen soll. Das klappte auch soweit ganz gut, aber als ich das Programm auf nem anderen Computer gestartet habe, war das Objekt nicht mehr an der selben Stelle des Dialogfelds wie davor, sondern war um ca. 50 Pixel verschoben....

    Ich bin noch nicht so fortgeschritten in der VisualC-Programmierung und da dacht ich mir, frag doch mal die Checker da draußen... 😃
    Kann mir da jemand nen Tip geben ?

    Danke & Gruß
    Okriv

    CFont fontTcPlayer;
    
    	VERIFY(fontTcPlayer.CreateFont(	35,
    					15,
    					0,
    					0,
    					FW_NORMAL,
    					FALSE,
    					FALSE,
    					0,
    					ANSI_CHARSET,
    					OUT_DEFAULT_PRECIS,
    					CLIP_DEFAULT_PRECIS,
    					DEFAULT_QUALITY,
    					DEFAULT_PITCH|FF_SWISS,
    					"Arial"));
    
    	CClientDC dc(this);
    
    	dc.SetTextColor(RGB(255,0,0));
    	dc.SetBkColor(RGB(0,0,0));
    
    	CFont* def_font = dc.SelectObject(&fontTcPlayer);
    	dc.TextOut(54,32,strTcPlayer);		
    	dc.SelectObject(def_font);
    


  • Hm, versuch mal dieses:
    Füge vor dem TextOut Aufruf diese Zeile ein

    dc.SetMapMode(MM_TEXT);
    

    Habs nicht ausprobiert - Aber ist so ne Vermutung 😉



  • Hey Cpp_Junky,

    fettes Merci für die Antwort. Habs mal an dem besagten Rechner getestet, aber das CFont-Feld ist immer noch verschoben...

    Jetzt ist mir auch aufgefallen, daß die Buttons meines Dialogfelds da auch ne andere Größe haben. Gibt es da bei VisualC++ 6 vielleicht irgendwo ne Einstellung, die ich noch nicht kenne ? .....

    Weiss noch jemand was ?!?

    Gruß
    Okriv



  • Hat sonst noch jemand ne Idee, woran das liegen könnte ?....bin am verzweifeln 😞 😞



  • ... ich würde spontan auf unterschiedliche Betriebsysteme tippen.
    Als weiter Vermutung sind die Texte genau um die Grösse der Titelleiste verschoben? Wenn dem so ist, kannst du ja abfragen welche Betriebsystem gerade läuft. Die Höhe der Titelleiste müsstest du über GetSystemMetrix() erhalten.

    So weit so schlecht


Anmelden zum Antworten