Учебник по Visual C++ .Net


Двойственные интерфейсы Технология - часть 5


LPCRECTL р = di.prcBounds;

//====== Цвет подложки текста

::SetBkColor(di.hdcDraw,m_clrFillColor) ;

//====== Инвертируем цвет текста

::SetTextColor(di.hdcDraw, ~m_clrFillColor & Oxffffff);

//====== Цвет фона

::SelectObject(di.hdcDraw,

::CreateSolidBrush(m_clrFillColor));

Rectangle(di.hdcDraw, p->left, p->top, p->right, p->bottom);

SetTextAlign(di.hdcDraw, TA_CENTER | TA_BASELINE);

LPCTSTR pszText = _T("ATL 4.0 : OpenGL");

TextOut(di.hdcDraw, (p->left + p->right)/2,

(p->top + p->bottom)/2,

pszText, Istrlen(pszText)

};

return S_OK;

}

Запустите и убедитесь, что системные цвета выбираются корректно, а перерисовка при изменении размеров объекта не нарушает заданных границ. Некоторые проблемы возникают при инвертировании цвета фона, если он близок к нейтральному (128, 128, 128). В качестве упражнения решите эту проблему самостоятельно.




Начало  Назад  



Книжный магазин