Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > подчеркивание текста...


Автор: Grok 15.4.2008, 19:09
привет... 

у меня не подчеркивается текст ... :( 

из-за чего может не работать? 

Код


LOGFONT lf;
lf.lfUnderline = TRUE;



я просто не понимаю .... 

это при том что 

Код


lf.lfStrikeOut



нормально подхватывает 

Автор: Mihhail 15.4.2008, 19:56
Grok, приведи полный текст программы где создаёшь и применяешь шрифт. Возможно какой то другой участок оказывает влияние.
Хотя тип шрифта, например, не должен здесь играть роли, но как знать....

Автор: Grok 16.4.2008, 12:59
Я понял где протупил:

Код

....................
lf.lfHeight = -MulDiv(8, 95, 72);
....................
rectLink.bottom = rectLink.top + 12;
....................
DrawText(hdc, strDebrisLink.GetString(), strDebrisLink.GetLength(), &rectLink, DT_LEFT | DT_VCENTER | DT_WORDBREAK);


была слишком маленькая высота прямоугольника, увеличил и все ок smile



у меня еще однин вопрос к этому примеру...

при попадании курсора в область прямоугольника получается эфект линка, тест подчеркивется... но меня не совсем устаривает качество, так как я сделал :( 

Код


case WM_MOUSEMOVE:
    BOOL bTempCursor;
    bTempCursor = swd.GetBLink();
    pt.x = LOWORD(lParam);
    pt.y = HIWORD(lParam);
    RECT rectLink;
    rectLink = swd.GetLinkRect();
    if (PtInRect(&rectLink, pt))
    {
        swd.SetBLink(TRUE);
    }
    else
    {
        swd.SetBLink(FALSE);
    }
    if (bTempCursor != swd.GetBLink())
    {
        InvalidateRect(hDlg, &rectLink, TRUE);
    }
    break;


у меня росто обьявляется недействительным этот прямоугольник, и в связи с перерисовкой получаестся "моргание" этой области, можно ли как-то просто проапдейтить текст.... ? 

Автор: Andrey44 16.4.2008, 13:18
Код

 InvalidateRect(hDlg, &rectLink, FALSE);

Автор: Grok 16.4.2008, 13:34
спасибо smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)