TTextMetric und GetTextMetrics
-
Leider kann ich aktuell meine Hilfe nicht mehr nutzen, daher würde ich mich gern erkundigen was der Unterschied zwischen TTextMetric und TEXTMETRIC ist.
Ich ich habe diesen Code:
TTextMetric SysMetrics; DC = GetDC(NULL); GetTextMetrics(DC, &SysMetrics); // Fehlerzeile
Compiler sagt:
[BCC32 Fehler]: E2034 Konvertierung von 'tagTEXTMETRICW *' nach 'tagTEXTMETRICA *' nicht möglich
[BCC32 Fehler]: E2034 Konvertierung von 'tagTEXTMETRICW *' nach 'tagTEXTMETRICA *' nicht möglichTausche ich TTextMetric mit TEXTMETRIC aus, dann funktioniert alles. Was mache ich falsch?
-
Du verwendest C++Builder >=2009, daher unterstützen RTL und VCL Unicode. TTextMetric ist ein VCL-Alias für TEXTMETRIC[A|W], in der Unicode-VCL entsprechend für *W. Allerdings hast du das TCHAR-Mapping auf "char" gestellt, weshalb GetTextMetrics ein Alias für die ANSI-Variante GetTextMetricsA ist.
Du könntest entweder das TCHAR-Mapping auf wchar_t stellen - dann verweisen alle TCHAR-Makros aus der WinAPI auf die Unicode-Variante (also GetTextMetrics auf GetTextMetricsW und TEXTMETRIC auf TEXTMETRICW) -, oder du könntest TEXTMETRIC anstelle von TTextMetric oder aber GetTextMetricsW anstelle von GetTextMetrics benutzen.
-
Danke für diese gut umfassende Antwort.