Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Перерисовка текста в наследованном CStatic

319
09 декабря 2003 года
xelos
577 / / 27.02.2003
Есть контрол, наследованный от стандартного, напрмер от CStatic. Обработчик OnPaint я перегружаю:
Код:
void CColorStatic::OnPaint()
{
   
    CPaintDC dc(this); // device context for painting

    CRect rect;
    GetClientRect(&rect);
   
    //что-то рисую на заднем плане
    DrawGradRect(&dc,rect,clLeft,clRight);

   
    //Выбираю цвет текста
    ::SetTextColor(dc,clText);

    HFONT hfontOld;
    CFont* pFont = GetFont();
    CString m_sTEXT;
    GetWindowText(m_sTEXT);
   
    if(pFont)
        hfontOld = (HFONT)SelectObject(dc.m_hDC, (HFONT)pFont->m_hObject);


    ::SetBkMode(dc, TRANSPARENT);
    GetClientRect(&rect);
   
    if(m_iAlign == 1) // center
        ::DrawText(dc, m_sTEXT, -1, &rect, DT_SINGLELINE|DT_VCENTER|DT_CENTER);
    else if(m_iAlign == 0) // left
    {
        rect.left+=m_iLeftSpacing;
        ::DrawText(dc, m_sTEXT, -1, &rect, DT_SINGLELINE|DT_VCENTER|DT_LEFT);
    }
    else //right
    {
        rect.right-=m_iLeftSpacing;
        ::DrawText(dc, m_sTEXT, -1, &rect, DT_SINGLELINE|DT_VCENTER|DT_RIGHT);
    }

    if(pFont)
        ::SelectObject(dc.m_hDC, hfontOld);
   
}


Устанавливаю шрифт для того, чтобы писать в контроле через SetFont(&pFont, 1).
Проблема в том, что шрифт при первоначальной загрузке даже при вызове SetFont остается системным. Потом из программы изменяю шрифт, опять через SetFont() - он устанавливается тем, который выбран. Перемещаю окно так, что часть текста невидима, вытаскиваю окно назад, та часть текста, что была невидимой перерисовывается системным шрифтом. Как сделать, чтобы избежать перерисовки системным шрифтом?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог