Клуб программистов "Весельчак У" - Описание компонент для WinXP
ГЛАВНАЯ СТАТЬИ ЧАВО КОНТАКТЫ ПОИСК
новости

Наш сайт поздравляет всех с Новым Годом! Желаем вам всего самого лучшего и много много хорошего в Новом 2010 году.
Администрация.


В связи с дырой в старом движке форума все переезжает на новый движок. Прошу прощения за неудобcтва...


Свершилось!
Сайт переехал на свой собственный выделенный сервер!

личный кабинет
онлайн
счетчики



Яндекс цитирования



Описание компонент для WinXP
Предисловие редактора.
В связи с тем, что у меня было две версии компонент, а времени собирать старую и новую и стыковать файлы у меня, нет в архиве содержится полная версия как старых, так и новых файлов.
По поводу отличия обращаться к автору.
Гром.


Описание компонент для WinXP

Все мои компоненты - под VC.NET созданы, проверены под WinXP.

Файлы IEButton.cpp

IEButton.h - кнопка с картинкой, возможно функционирование в 3 различных видах:
1.) - обыкновенная кнопка (только текст)

2.) - кнопка с иконкой (через функцию bool SetIcon(UINT nID,bool redraw);)

3.) - самое интересное - кнопка с иконкой и тенью, то есть при наводе указателя на кнопку появляется другая иконка (отличная от основной), чаще используется для подсветки. (функция - bool SetIcon(UINT nIDIcon,UINT nIDShadow,bool redraw);).

файлы IEEdit.cpp

IEEdit.h - едит бокс для числовых форматов, работает в следующих вариантах (определяются при вызове конструктора CIEEdit(const CString& LastStr=_T(""),

const bool mDouble=false,
const bool mInt=false,
const bool mLess=false,
const bool mMore=false,
const bool mnonZero=false);

1.)m_Int=false m_Double=false - просто строка

2.)m_Int=false m_Double=true
m_Int=true m_Double=true - едит бокс для double

3.)m_Int=true m_Double=false - едит бокс для Int

Для 2 и 3 комбинации:

1.)m_Less=false m_More=false - весь спектр решений (от минус бесконечности до плюс бесконечности)
m_Less=true m_More=true

2.)m_Less=false m_More=true m_nonZero=false ->=0;

3.)m_Less=false m_More=true m_nonZero=true ->0; (строго больше)

4.)m_Less=true m_More=false m_nonZero=false - <0;

5.)m_Less=true m_More=false m_nonZero=true - <=0;

Файлы IEPropertyList.cpp

IEPropertyList.h - лист свойств (как в C++Builder или в VC7) (для нормальной работы требуется - IEEdit,IEButton).

Возможны следующие типы элементов данных (то есть свойств):

1.) заголовок или узел (ReadOnly)

2.) стандартный едит

3.) едит для double >0

4.) едит для double >=0

5.) едит для double

6.) едит для int >0

7.) едит для int >=0

8.) едит для int

9.) комбо бокс

10.) статический текст - едит бокс стилем ReadOnly.

Кнопка мне была не нужна, поэтому я ее пока и не делал. Каждый элемент данных (кроме заголовка) передает сообщения о принятии фокуса и о потере фокуса диалогу, в котором лист свойств создан. На принятие фокуса элемент данных создается, на потерю фокуса - уничтожается. В сообщеннии, посылаемом окну, передается следующая структура:
Код:
struct IEPROPERTYITEM_NOTIFY //структура для передачи диалогу сообщения

{

NMHDR hDR;

IEPropertyItem* Item; //указатель на элемент данных сообщения

};

где IEPropertyItem - класс элемента данных.


За это время у меня появился перегруженный класс от CRichEditCtrl - CIERichEditOtchet - нужен для создания (динамически) ReadOnly отчетов о чем-нить. Что интересно - можно загонять строки в Unicode (хотя формат RTF - это не поддерживает), не надо знать формата RTF. Работает следующим образом: функциями класса

void AddStr(const CString& str,

const bool Bold=false, //жирность

const bool Underline=false, //подчеркнутость

const bool Italic=false, //курсив

const bool Left=true, //выравнивание

const bool Center=false,

const bool Right=false,

const int yHeight=200);

Добавляются абзацы текста с указанным форматированием (yHeight - в единицах twips), после добавления всех строк вызывается функция MakeOtchet() - которая отчет и генерирует полностью. Работает через SetWindowText. Заодно и его высылаю (IERichEditOtchet.cpp, IERichEditOtchet.h)



Версия для печати
Рейтинг:
Комментарии отсутствуют
дополнительно
рассылки
опрос

Как Вы нашли наш сайт?

Через поисковик
По ссылке с другого сайта
По рекомендации
Не помню


Результаты
Все опросы

канал IRC
Внимание:
Действует чат на канале IRC.
Для подключения используйте следующие настройки:
Сервер - irc.rinet.ru или irc.baikal.net
Порт - 6669.
Канал - #Shelek.
©2002-2010 "Весельчак У"
email:club@shelek.com