15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту




Расширенные возможности класса CStatic - CLabel

Автор: Norm Almond

  • Скачать демонстрационный проект - 52 Kb (v1.5 Сентябрь 2000)
  • Скачать исходник CLabel - 8 Kb (v1.5 Сентябрь 2000)

    Данная версия класса добавляет стандартному классу больше функциональности, плюс больше различных возможностей (URL, вращение, градиентная заливка и т.д.). Элемент управления использует двойную буфферизацию, что увеличивает скорость прорисовки.

    Совместимость: Visual C++ 6, Win9x, NT4, MFC

    Основная часть кода содержится в функции OnPaint.

    Данный класс очень легко использовать в диалоговых окнах. Проделайте следующие шаги:

    1. Создайте обычный диалог.
    2. Через Классвизард создайте функцию OnInitDialog.
    3. Добавьте в проект Label.cpp и Label.h.
    4. #Include <label.cpp> в Ваш файл dialog .cpp .
    5. Удалите файл проекта '.clw' и регенирируйте путём открытия проекта и нажатия Ctrl+W
    6. Задайте статическим элементам управляния уникальные ID в редакторе диалога.
    7. В классвизарде сопоставьте все элементы (CLabel) со всеми ID.
    8. В OnInitDialog используйте методы класса CLabel, чтобы изменить вид элемента управления.

    Методы класса CLabel

    CLabel& SetBkColor(COLORREF crBkgnd, COLORREF crBkgndHigh = 0, BackFillMode mode = Normal); Устанавливает цвет бэкграунда элемента и позволяет сделать градиентную заливку.
    CLabel& SetText(const CString& strText) Задаёт текст элемента
    CLabel& SetTextColor(COLORREF crText) Задаёт цвет текста элемента
    CLabel& SetFontBold(BOOL bBold) Переключает аттрибут жирности текста элемента
    CLabel& SetFontName(const CString& strFont) Название шрифта в элементе
    CLabel& SetFontUnderline(BOOL bSet) Переключет аттрибут подчёркивания шрифта
    CLabel& SetFontItalic(BOOL bSet) Переключает аттрибут наклонности шрифта
    CLabel& SetFontSize(int nSize) Устанавливает размер шрифта в точках.
    CLabel& SetSunken(BOOL bSet) Переключает аттрибут вдавленности элемента
    CLabel& SetBorder(BOOL bSet) Переключает аттрибут бордюра элемента
    CLabel& FlashText(BOOL bSet) Переключатель аттрибута высвечивания текста
    CLabel& FlashBackground(BOOL bSet) Переключатель аттрибута высвечивания бэкграунда
    CLabel& SetLink(BOOL bLink) Определяет, является ли элемент ссылкой URL
    CLabel& SetLinkCursor(HCURSOR hCursor) Устанавливает курсор для ссылки URL.
    CLabel& SetTransparency(BOOL bTransparency) Устанавливает прозрачность бэкграунда.
    CLabel& SetFont3D(BOOL bSet,Type3D type) Устанавливает 3D шрифты
    CLabel& SetRotationAngle(UINT nAngle,BOOL bRotation) Устанавливает угол вращения для шрифта
    CLabel& SetText3DHiliteColor(COLORREF cr3DHiliteColor) Устанавливает яркость для 3D текста

    Пример использования

     m_fname.SetFontName("System");
     m_fsize.SetFontSize(14);
     m_uline.SetFontUnderline(TRUE);
     m_tcolor.SetTextColor(RGB(255,0,0));
     m_bcolor.SetBkColor(RGB(0,255,255));
     m_italics.SetFontItalic(TRUE);
     m_bold.SetFontBold(TRUE);
     m_border.SetBorder(TRUE);
     m_sunken.SetSunken(TRUE);
     m_lblGradient.SetBkColor(RGB(255,255,255),RGB(0,0,255), CLabel::Gradient);
    
     m_monty.SetFontName("Arial");
     m_monty.SetFontSize(12);
     m_monty.SetTextColor(RGB(255,255,0));
     m_monty.SetFontUnderline(TRUE);
     m_monty.SetBkColor(RGB(0,0,0));
     m_monty.SetFontItalic(TRUE);
     m_monty.SetFontBold(TRUE);
     m_monty.SetBorder(TRUE);
     m_monty.SetSunken(TRUE);