Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Custom Control, Что это такое- объяните! И зачем? 
:(
    Опции темы
Edik
Дата 29.12.2006, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 207
Регистрация: 13.9.2006

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



Объясните зачем Custom Control и как им пользоваться! smile 
PM MAIL   Вверх
GremlinProg
Дата 4.1.2007, 23:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2706
Регистрация: 9.8.2005
Где: Тюмень

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



Чтобы можно было положить на диалог какой-нибудь специфический ресурс, или известный, но с особой комбинацией стилей


--------------------
"Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины."
PM WWW ICQ   Вверх
FelikZ
Дата 5.1.2007, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Старый Маразматик
**


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

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



Custom Control - что-то типа своего контрола:
Например своя кнопка которую можно будет почти в любые проекты
на любом языке внедрять (если ActiveX)

Это сообщение отредактировал(а) FelikZ - 5.1.2007, 16:31


--------------------
user posted image
PM WWW ICQ Skype   Вверх
Earnest
Дата 10.1.2007, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



ИМХО, устаревшая технология, и очень неудобная. Разве что только если писать на чистом API. 
Собственно, это всего лишь DLL с реализацией оконной функции и регистрацией класса. Но использовать действительно можно где-угодно. И к ActiveX отношения не имеет - технология более старая.

Альтернативы - если контрол для локального использования - писать на основе используемой библиотеки (например MFC), а если нужен контрол для широкого распространения, не привязанный к библиотеке - на основе ActiveX.  


--------------------
...
PM   Вверх
Nastya
Дата 11.1.2007, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 27.3.2002
Где: Мариуполь

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



Чесслово никогда не юзала за ненадобностью ;) 


--------------------
Что бы понять рекурсию, надо понять рекурсию

"Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор
PM MAIL   Вверх
GremlinProg
Дата 12.1.2007, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2706
Регистрация: 9.8.2005
Где: Тюмень

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



Цитата(Earnest @  10.1.2007,  23:24 Найти цитируемый пост)
Собственно, это всего лишь DLL с реализацией оконной функции и регистрацией класса.

не длл, ни в коем разе, просто ресурс, который CreateDialog воспринимает, как имя класса и набор флагов. Если класс не зарегистрирован, то окно для custom control не создается.


--------------------
"Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины."
PM WWW ICQ   Вверх
GremlinProg
Дата 12.1.2007, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2706
Регистрация: 9.8.2005
Где: Тюмень

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



Custom control предназначен в первую очередь для того, чтобы можно было в программе зарегистрировать какой-нибудь класс с Вашей процедурой окна, а в редакторе ресурсов разместить элемент этого класса на форме диалога в нужном месте. При этом отпадает необходимость обеспечивать очередь сообщений(для DialogBox) и создавать окно, CreateDialog это сделает сама. За разработчиком остается только обеспечить регистрацию компонента(RegisterClass/RegisterClassEx). По поводу совместимости с MFC, QT и т.п. здесь так же проблем нет в каждой такой оболочке есть возможность "подцепиться" к уже существующему окну, так что технологией это назвать ни как нельзя, простой интерфейс взаимодействия со сторонними классами. И конечно "устаревшая" - это не тот термин, котороый здесь можно применить, есть просто люди, которые занимаются разработкой ПО с его рождения, когда еще не было борланда с его красивыми формочками или не было возможности его использовать (есть много причин). А по скольку апишных девелоперов и по сей день не мало, то custom control для С-платформ - очень удобный инструмент.


--------------------
"Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины."
PM WWW ICQ   Вверх
Earnest
Дата 15.1.2007, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Ну, это дело вкуса... мне не нравится. 

Я уже писала - если писать на голом WinAPi, да еще на C, - то да, практически и альтернативы-то нет, а если на классах каких-нибудь - то проще сразу в классах и делать. Поясню. Вот написали достаточно сложный контрол, скажем, GRID, как Custom Control. Т.е. имеем его интерфейс примерно в том же виде, как интерфейс системного ListView и прочая - масса сообщений, уведомлений, структур и т.д. Что мы делаем в первую очередь, если основное приложение у нас на классах? Правильно, пишем для нашего Custom Control объектную оболочку - опять же, аналогично MFC-оберткам.
Не то, чтобы это было очень сложно, но зачем мучиться, если можно сразу нормальный класс написать... Ну да, на форму его сразу не положишь, придется создавать динамически, но, на мой взгляд - это недостаточное основание, чтобы возиться с Custom Control.

Вот примерно так...


--------------------
...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




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


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

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