GetTextExtentPoint32



  • Wie kann ich berechnen wie lang ein String ist ? Mein Fenster soll so lang sein wie der längste String, der darin dargestellt werden soll. Ich hab versucht das mit GetTextExtentPoint32 zu machen aber es klappt nicht richtig oder ich weiss nicht wie ich umrechnen muss 😕

    LOGFONT lf;
    	HDC hDC;
    	HFONT hFont, hFontOld;
    	SIZE Size;
    
    	memset( &lf, 0, sizeof(lf) );
    
    	lf.lfCharSet	= ANSI_CHARSET;
    	lf.lfWeight		= FW_REGULAR;
    
    	hDC = GetDC(NULL);
    	lf.lfHeight		= -MulDiv( 8, GetDeviceCaps(hDC, LOGPIXELSY), 72 );
    	lstrcpy( lf.lfFaceName, "Times New Roman" );
    
    	if( (hFont = CreateFontIndirect(&lf)) == NULL )
    		return 0;
    
    	hFontOld = (HFONT) SelectObject( hDC, hFont );
    	GetTextExtentPoint32( hDC, lpszText, strlen(lpszText), &Size );
    	SelectObject( hDC, hFontOld );
    	DeleteObject( hFont );
    	ReleaseDC(NULL, hDC);
    

    Muss ich den Wert von Size.cx dann noch irgendwie umrechnen, denn wenn ich den so an CreateWindow als Width übergebe, stimmt das nicht?



  • Wieviel weicht der Wert denn ab ?



  • hallo,
    es klappt doch, hatte mich vorhin nur verguckt 😉 😉


Anmelden zum Antworten