У меня есть двумерный массив символов lineData
и массив bool
s, linesToUnderline
, lineData
хранит только текст. linesToUnderline
хранит истину или ложь для каждой строки в lineData
, Каждая строка в lineData
вводится в статический элемент управления (который создается динамически) определенным образом для отображения пользователю.
Сейчас если linesToUnderline[i]
= верно (для 0 <= я < numLines
), Мне нужно отобразить строку только с первое слово подчеркнуто а остальная часть текста нормально.
То, о чем я говорю, выглядит так:
Итак, на данный момент, что я думаю сделать:
linesToUnderline[i]
= ложь, перейдите к шагу 4.lineData
, поместите его в статический элемент управления, установите шрифт этого элемента управления в подчеркнутый.lineData
,lineData
длина пикселя.lineData
в статическом управлении, начиная с позиции X, Y.i
< numLines
перейдите к шагу 1.Что вы думаете о моем методе? Я чувствую, что должен быть лучший способ сделать это. Если есть, кто-нибудь может мне помочь?
Ваш предложенный метод не будет работать. Элемент управления использует только один шрифт за раз (для всего своего текста), и он не обеспечивает способ добавления текста в X, Y.
Вы должны создать подкласс управления и нарисовать текст самостоятельно в WM_PAINT. Ваш код краски может предоставить необходимые функции.
это код проекта статьи реализует элемент управления гиперссылкой путем подкласса статического элемента управления. Вы можете использовать его в качестве основы для подчеркивания. Все, что вам нужно сделать, это упростить код.