Что за размеры возвращает stringExtent?
Если я делаю
gc.setFont(new Font(gc.getDevice(), "Arial", 20, SWT.NORMAL));
final Point point = gc.stringExtent("W");
gc.drawString("W", 2, 2);
то размеры в принципе соответствуют действительности. А если сделать SWT.ITALIC,
то буква рисуется шире (если измерить на screenshot, то 28х22), а stringExtent
возвращает 25х31.
SWT 3.3.0-v3346, win32
Posted via RSDN NNTP Server 2.1 beta
Chmmr wrote:
> .>Что за размеры возвращает stringExtent?
>
> Возвращает он не совсем то, что написано в документации, а именно ширину
> текста только по базовой линии. Верхняя правая часть буквы W оказывает
> торчащей из этого прямоугольника. Но, видимо, так работает вся система
> шрифтов, по крайней мере, в Windows. Убедиться в этом можно, набрав
> например в MS Word'е курсивом строку "Wa" и выделив только первую букву
> — прямоугольник выделения будет точно такой же.
Точно, вот ведь! WordPad так же рисует, как и у меня. А я сижу пикселы притираю.

Кстати, в Arial ещё более-менее, а вот Tahoma вообще жуть.
Posted via RSDN NNTP Server 2.1 beta