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

ВИДЕОКУРС ВЗЛОМ
выпущен 2 июля!


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

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



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

Visual C++. ATL
Урок 11. Сохранение свойств

Сейчас наш элемент ActiveX не сохраняет свои свойства. Давайте посмотрим, что надо сделать для сохранение свойств.

Найдите пару макросов BEGIN_PROP_MAP и END_PROP_MAP в файле FirstATL.h и внесите следующие изменения:

BEGIN_PROP_MAP(CFirstATL)
 
     PROP_DATA_ENTRY("_cx", m_sizeExtent.cx, VT_UI4)
 
     PROP_DATA_ENTRY("_cy", m_sizeExtent.cy, VT_UI4)
 
     PROP_ENTRY("BackColor", DISPID_BACKCOLOR, CLSID_StockColorPage)
 
     PROP_ENTRY("num", 1, CLSID_NULL)
 
     PROP_ENTRY("MyName", 4, CLSID_NULL)
 
     // Example entries
 
     // PROP_ENTRY("Property Description", dispid, clsid)
 
     // PROP_PAGE(CLSID_StockColorPage)
 
 END_PROP_MAP()

Все! Теперь пользовательские свойства num и MyName будут сохраняться! Немного пояснений, что же мы тут такого сделали. Для сохранения свойств используется макрос PROP_ENTRY. Первый его параметр - это имя нашего свойства. Второй - это идентификатор нашего свойства (кстати, это число у вас может быть другое). Для его выяснения просто сделайте двойной щелчок на нужном свойстве внешнего интерфейса IFirstATL. Число в круглых скобках после id нам и надо:

Идентификатор свойства

И, наконец, третий параметр у макроса PROP_ENTRY - это идентификатор страницы со свойствами для нашего элемента ActiveX. Так как у нашего элемента нет (пока) страницы свойств, то ставим CLSID_NULL.

Кстати, обратите внимание, что встроенное свойство BackColor сохранялось и без нашего участия. И именно потому, что для него уже есть строка

    ...
 
     PROP_ENTRY("BackColor", DISPID_BACKCOLOR, CLSID_StockColorPage)
 
     ...

С сохранением свойств все!



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

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




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



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


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