Категория
Информатика
Тип
реферат
Страницы
6 стр.
Дата
17.08.2008
Формат файла
.rtf — Rich Text Format (Wordpad)
Архив
20700.zip — 6.39 kb
  • realizacija-stilja-office-xp_20700_1.rtf — 33.27 Kb
  • Readme_docus.me.txt — 125 Bytes
Рейтинг
10  из 10
Оценок
1
Оцените работу
Хорошо  или  Плохо


Текст работы

Реализация стиля Office XP Alena
Alena
Реализация стиля Office XP
ToolBarXP
Недавно я пытался найти в сети ToolBar-элемент в стиле Office XP. Поиски мои не увенчались успехом - все элементы были либо сложны в встраивании в проект, либо платны. Тогда я принял отчаянные меры - написал сам... А, как оказалось, в написании тулбара не было оссобенных проблем. Вот как я сделал.
Создал MFC SDI проект с именем StyleXP. С помощью ClassWizard'а добавил новый класс CToolBarXP, наследованный от CToolBar (CToolBar в списке нет, но я выбрал CToolBarCtrl и вручную изменил имя предка). Дальше встал вопрос: "Какие функции перегружать?". Просмотрев весь предоставленный список в ClassWizard'е, я выбрал WM_PAINT. Долго я с ним провозился
, но таки вышло вот что:
void CToolBarXP::OnPaint()
CPaintDC dc(this); // device context for painting
// TODO: Add your message handler code here
CRect rt, rItem;
COLORREF face, shdw, cbtn;
BYTE r,g,b;
WORD BtnLength;
// Берём клиентскую область эл-та
GetClientRect(rt);
// Выщитываем цвет бэк-граунда(для пущей красоты
// я решил слегка отклониться от стандартного цвета).
face = GetSysColor(COLOR_3DFACE);
r = GetRValue(face)+10;
g = GetGValue(face)+10;
b = GetBValue(face)+10;
face = PALETTERGB(r,g,b);
// Таким же образом выщитываем цвет выделенной кнопки...
cbtn = GetSysColor(COLOR_3DFACE);
r = GetRValue(cbtn)-10;
g = GetGValue(cbtn)-10;
b = GetBValue(cbtn)-10;
cbtn = PALETTERGB(r,g,b);
// и цвет
рамки
shdw = GetSysColor(COLOR_3DSHADOW);
r = GetRValue(shdw)+10;
g = GetGValue(shdw)+10;
b = GetBValue(shdw)+10;



Ваше мнение



CAPTCHA