In Delphi möchte ich Text in ein TRect zeichnen. Ich hoffe auf folgende Funktionalität:
Ich kann sehen, dass die Windows.DrawText () -Funktion fast diese Funktionalität abdeckt, aber beim Schreiben von Text schließen sich mehrzeilig und vertikal zentriert gegenseitig aus.
Ich habe mich gefragt, ob diese Funktionalität in Windows (2000+) eingebaut ist? Wenn nicht, gibt es eine Möglichkeit, dies zu tun, ohne meine eigene Funktion zu schreiben?
Messen Sie den Text zuerst mit DT_CALCRECT
. Übergeben Sie DT_WORDBREAK
, um anzugeben, dass der Zeilenumbruch aktiviert ist. Dadurch können Sie die erforderliche Höhe für Ihren Text finden. Dann können Sie in Ihrem Code den vertikalen Versatz berechnen, der Ihnen vertikal zentrierten Text bietet, und auf diesen Versatz zeichnen.