Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как подключить свой класс к ToolBox? свой элемент управления в ToolBox'е. 
:(
    Опции темы
SwallowSPB
Дата 5.8.2008, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 10.7.2008
Где: Питер

Репутация: нет
Всего: нет



Подскажите, please...........Создан свой класс ( Class.h, Class.cpp и ресурсы к нему). Как его прописать в ToolBox'е (с картинкой, как и у остальных ЭУ), чтобы можно было его  от туда вытаскивать на окно диалога и работать с ним, как и с любым другим ЭУ (с идентификатором в .rc, с окошком свойств и все такое).  smile . Простой свой ЭУ MFC, без всяких ActiveX и COM. Заранее спасибо.
PM MAIL   Вверх
Rapalex
Дата 5.8.2008, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 732
Регистрация: 20.1.2006
Где: Украина -> Ник олаев

Репутация: 6
Всего: 8



Если я тебя правильно понял, то никак  smile 


--------------------
In vitium ducit culpae fuga.
Желание избежать ошибки вовлекает в другую.
(Horatius)
PM ICQ   Вверх
SwallowSPB
Дата 5.8.2008, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 10.7.2008
Где: Питер

Репутация: нет
Всего: нет



А как тогда правильно свой ЭУ прописывать в окошко диалога, с идентификатором IDC_......, c управление свойств нового ЭУ в дизайнере VC2005, с DDX? Так ведь просто в .rc не прописать: LTEXT           "",IDC_NEWCONTROL,100,100,200,200,0,WS_EX_CLIENTEDG, это среда должна делать.
PM MAIL   Вверх
Rapalex
Дата 5.8.2008, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 732
Регистрация: 20.1.2006
Где: Украина -> Ник олаев

Репутация: 6
Всего: 8



Наиболее популярно и просто унаследоваться например от кнопки, переопределить что нада, а потом в заголовочном файле подменить CButton на твой класс.


--------------------
In vitium ducit culpae fuga.
Желание избежать ошибки вовлекает в другую.
(Horatius)
PM ICQ   Вверх
swetaCS
Дата 5.8.2008, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 5.8.2008

Репутация: нет
Всего: нет



А разве в ToolBox нельзя добавить свой компонент? На моей памяти люди это как-то делали ....... 
PM MAIL   Вверх
Earnest
Дата 5.8.2008, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Просто элемент управления, описанный парой cpp + h - нельзя. 

Цитата(SwallowSPB @  5.8.2008,  16:11 Найти цитируемый пост)
Так ведь просто в .rc не прописать: LTEXT           "",IDC_NEWCONTROL,100,100,200,200,0,WS_EX_CLIENTEDG, это среда должна делать. 

С чего это? Все можно, если правильно делаешь. Только вот LTEXT - это просто статик, а вовсе не твой элемент.
Если у тебя нечто, похожее на статик, наследуйся от статика, а дальше - как подсказал Rapalex
Что у тебя за класс, от чего наследуется? От CWnd? Если решительно нельзя унаследоваться ни от чего другого, то единственный способ - динамическое создание в runtime. А на диалоге можно разметочный контрол посадить (статик, например), чтобы место создания проще определить. Я еще обычно этот разметочный контрол удаляю, а его идентификатор и таб-ордер использую для нестандартного контрола.
Но, повторюсь, в большинстве случаев можно и нужно наследоваться от чего-нибудь стандартного: кнопки, эдита, статика, etc...


--------------------
...
PM   Вверх
Rapalex
Дата 5.8.2008, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 732
Регистрация: 20.1.2006
Где: Украина -> Ник олаев

Репутация: 6
Всего: 8



А ещё есть юзер контролы, но я ими никогда не пользовался и смутно представляю что это.


--------------------
In vitium ducit culpae fuga.
Желание избежать ошибки вовлекает в другую.
(Horatius)
PM ICQ   Вверх
SwallowSPB
Дата 5.8.2008, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 10.7.2008
Где: Питер

Репутация: нет
Всего: нет



Спасибо. С наследованием понятно. В .rc тож все хорошо руками прописывается.
Но все же как разработать компонент, грамотно помещающийся в ToolBox? Какую технологию для этого надо задействовать? Какова последовательность действий? В каком виде, вообще, например, самая простая кнопка хранится в VS2005? 
PM MAIL   Вверх
Rapalex
Дата 6.8.2008, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 732
Регистрация: 20.1.2006
Где: Украина -> Ник олаев

Репутация: 6
Всего: 8



Опять 25. Кнопки хранятся не в студии а в винде (комон контролы).


--------------------
In vitium ducit culpae fuga.
Желание избежать ошибки вовлекает в другую.
(Horatius)
PM ICQ   Вверх
SwallowSPB
Дата 6.8.2008, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 10.7.2008
Где: Питер

Репутация: нет
Всего: нет



Очень убедительно, Repalex. Не знаешь - не пиши: никак. Согласен, вопрос не тривиальный, но знания - ценный материал, а редкие знания - бесценный. Если у кого-то есть опыт в решении этой задачки, буду благодарен за инфу.
PM MAIL   Вверх
SwallowSPB
Дата 7.8.2008, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 10.7.2008
Где: Питер

Репутация: нет
Всего: нет



С ToolBox'м в VS2005 разобрался. Можно просто компилировать компоненты в виде .dll или ActiveX (.ocx), и в таком виде они хорошо прописываются (с картинками и прочим) в Tools через меню Choose ToolBox Item..., либо ПКМ на ToolBox -> Choose Item. 
A стандартные ЭУ собраны в COMCTL32.Dll винды, если я не ошибаюсь. 
PM MAIL   Вверх
Earnest
Дата 8.8.2008, 08:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



В COMCTL32.Dll  только Common controls (ListView, TreeView, ...) а кнопки, эдиты, комбобоксы и прочие ветераны где-то еще.


--------------------
...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0999 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.