Если вам нужно чистое решение Java, вы можете попробовать JWebEngine . Это делает HTML 4 очень хорошим. Вы можете использовать его в апплете, веб-сайте Java и на любой платформе. Использование очень просто.
ListView_GetSubItemRect (LVM_GETSUBITEMTECT)
http://msdn.microsoft.com/en-us/library/ms930172.aspx
Несмотря на то, что в документации говорится, что я подозреваю, LVIR_LABEL возвращает просто возвраты ограничительный прямоугольник текста элемента согласно ListView_GetItemRect.
(Это просто продолжало придираться меня как меня, хотя я на самом деле видел ответ где-нибудь при проигрывании с NM_CUSTOMDRAW).
Редактирование после комментария 2:
Я предполагаю, что Вы видели NMLVCUSTOMDRAW который, если Вы готовы использовать Версию 6.0. имеет rcText. Я не был бы, так как я использую Win2K.
Учитывая то, что Вы нашли, что я вернулся бы к предложению использования ListView_GetItemRect, чтобы получить LVIR_LABEL и сравнить это с LVIR_BOUNDS и использовать различие.
Я предположил бы, что GetSystemMetrics () - то, что необходимо посмотреть на. Я думаю, что SM_CXEDGE и SM_CYEDGE являются, вероятно, значениями, которые Вы хотите, но не заключаете мне в кавычки на этом.;-)
Может только предположить, не видя Вашего вывода.
Несколько предложений: Если Вы используете функцию DrawTextEx, сделали, чтобы Вы экспериментировали с DT_INTERNAL и др.?
Вы случайно включаете пустое изображение/значок.
Это смотрит хорошо в классическом экранном режиме? Раз так я посмотрел бы на функции Темы XP, чтобы видеть, продолжается ли некоторая вещь.
Последнее редактирование после первого комментария:
Интересно, соответствует ли размер прямоугольника пространству, требуемому для окна редактирования LVN_ENDLABELEDIT вокруг текста, таким образом, текст не перемещается (или для прямоугольника фокусировки)?
Я предполагаю, что Вы могли сравнить результат LVM_GETITEMRECT с LVIR_LABEL на первом столбце и использовать различие в качестве Вашей левой границы.
используйте сообщение заголовка ListView HDM_GETBITMAPMARGIN см. текст ссылки