Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 августа!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Слушай, дружище, зачем так мучиться с этим языком С++, ты ведь не Билл Гейтс. Возьми тот же Python и программируй, он кроссплатформенный, под Windows тоже работает. Я сам давно заметил: то что на Си пишешь в страницу кода, на питоне решается в одну-две строки. При том, питон намного проще, я его сам недавно изучил по видеокурсу вот этому. Кстати, автор отлично там объясняет. Буквально день-два и уже будешь писать на нём, чего не скажешь про сложный С++.

Усовершенствованный ProgressBar v1.1


Автор: Yury Goltsman.

Введение

В этом элементе управления я собрал несколько различных идей и постарался сделать его наиболее гибким, по возможности доступным для понимания и конечно же расширяемым. Поэтому Вам не составит особого труда добавить в этот класс свои возможности. Вы также можете использовать стандартные возможности ProgressBar и MFC класса CProgressCtrl. Если хотите посмотреть мои работы, то заходите на мою страничку.

Возможности:

  • Заполнение плавно переходящими цветами
  • Многоцветовая заливка
  • Гибкая заливка
  • Заполнение кистью бэкграунда и индикатора прогресса (отменяет установки цветов)
  • Текст на полоске индикатора
  • Два цвета для текста
  • Поддержка вертикального расположения текста (0-90-180-270 градусов)
  • Поддержка установки различных шрифтов
  • Форматирование текста (может показывать проценты, позицию или просто текст)
  • Поддержка текста привязанного к индикатору
  • Поддержка вертикального управления
  • Рехим обратного хода
  • Режим змеи
  • Границы

 

Усовершенствование интерфейса:

Стиль текста (чтобы установить формат текста, используйте "SetTextFormat" и "HideText"):

#define PBS_SHOW_PERCENT         0x0100
 
 #define PBS_SHOW_POSITION        0x0200
 
 #define PBS_SHOW_TEXTONLY        0x0300
 
 

Стиль элементов управления (используйте "ModifyStyle"):

#define PBS_TIED_TEXT            0x1000
 
 #define PBS_RUBBER_BAR           0x2000
 
 #define PBS_REVERSE              0x4000
 
 #define PBS_SNAKE                0x8000
 
 

Функции для использования всех возможностей:

 
 void SetGradientColors(COLORREF clrStart,
 
                        COLORREF clrEnd);
 
 void GetGradientColors(COLORREF& clrStart,
 
                        COLORREF& clrEnd);
 
 
 
 void SetGradientColorsX(int nCount,
 
                         COLORREF clrFirst,
 
                         COLORREF clrNext, ...);
 
 const CDWordArray& GetGradientColorsX();
 
 
 
 void SetBarBrush(CBrush* pbrBar);
 
 CBrush* GetBarBrush();
 
 
 
 void SetBkColor(COLORREF clrBk);
 
 COLORREF GetBkColor();
 
 
 
 void SetBkBrush(CBrush* pbrBk);
 
 CBrush* GetBkBrush();
 
 
 
 void SetTextColor(COLORREF clrTextOnBar,
 
                   COLORREF clrTextOnBk = -1);
 
 COLORREF GetTextColor();
 
 COLORREF GetTextColorOnBk();
 
 
 
 void SetShowPercent(BOOL fShowPercent = TRUE);
 
 BOOL GetShowPercent();
 
 
 
 void SetTextFormat(LPCTSTR szFormat,
 
                    DWORD ffFormat = PBS_SHOW_TEXTONLY);
 
 void HideText();
 
 
 
 void SetTiedText(BOOL fTiedText = TRUE);
 
 BOOL GetTiedText();
 
 
 
 void SetRubberBar(BOOL fRubberBar = TRUE);
 
 BOOL GetRubberBar();
 
 
 
 void SetReverse(BOOL fReverse = TRUE);
 
 BOOL GetReverse();
 
 
 
 void SetSnake(BOOL fSnake = TRUE);
 
 BOOL GetSnake();
 
 
 
 void SetSnakeTail(int nTailSize);
 
 int  GetSnakeTail();
 
 
 
 void SetBorders(const CRect& rcBorders);
 
 const CRect& GetBorders();
 
 

Так же Вы можете использовать:

  • SetFont() - установить шрифт и поворот текста
  • SetWindowText() - установить текст на эелементе управления (для этого лучше использовать SetTextFormat())
  • SetStyle(),ModifyStyle() - установить или изменить стиль элемента управления
  • SendMessage() - послать сообщение ProgressBar-у или любому окну
  • Различные возможности базового класса CProgressCtrl

Всё остальное смотрите в демонстрационном проекте.

Заметки

Наибольшее качество изображения и производительность достигается в цветовых режимах  HighColor(15/16 bit) и TrueColor(24/32 bit). Конечно данный класс поддерживает режимы в 256 и 16 цветов. Но при 16 цветах Вы не сможете использовать заливку, а при 256 цветовом режиме элементы управления работают медленнее, потому что используют CreateSolidBrush/FillRect вместо FillSolidRect.

Управление, это часть UIBits.dll и независимое использование его требует включения двух файлов: DrawGdiX.h и MemDC.h.

Downloads

Скачать демонстрационный проект - 57 Kb
Скачать исходник - 12 Kb



<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS