2011-08-02 2 views
1

Насколько я знаю, вы можете использовать Custom Draw в виде списка, чтобы рисовать отдельные ячейки так, как вы хотите, используя CDDS_SUBITEM.ListView Custom Draw - Разноцветный текст внутри отдельной ячейки?

Однако, я хотел бы иметь разноцветный текст в ячейке. То есть, я хотел бы, например, установить текст ячейки: «эта программа называется [красным красным текстом] Red Program [end red text]» - есть ли способ сделать это?

ответ

0

Ну, в вашей структуре вы получаете HDC. Вам нужно будет позвонить по телефону DrawText несколько раз. Вы можете просто позвонить SetTextColor, чтобы сделать это, или вам, возможно, придется позвонить SelectObject и выбрать по вашему усмотрению Pen, чтобы изменить цвет ... yay GDI.

+0

Спасибо за ответ. Как бы я решил выяснить, какая часть прямоугольника, который мне дана для рисования, соответствует каждому цветному токену? –

+0

Я не понимаю ваш вопрос. Вы разбиваете свою строку на различные цвета, а затем используйте DrawText (и, возможно, MeasureText), чтобы определить прямоугольник для каждого из них. –

+0

Мне нужно будет вызвать DrawText, чтобы нарисовать каждый отдельный токен, и мне нужно знать, что нужно для каждого из них, но я получаю только один HDC/rect из уведомления. Как я могу определить прямоугольник с помощью DrawText? Разве он просто не принимает в качестве входных данных? А что такое MeasureText? –