![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| Edik |
|
|||
|
Бывалый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 207 Регистрация: 13.9.2006 Репутация: нет Всего: 1 |
Объясните зачем Custom Control и как им пользоваться!
|
|||
|
||||
| GremlinProg |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
Чтобы можно было положить на диалог какой-нибудь специфический ресурс, или известный, но с особой комбинацией стилей
-------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
| FelikZ |
|
|||
![]() Старый Маразматик ![]() ![]() Профиль Группа: Участник Сообщений: 380 Регистрация: 1.12.2006 Где: Vault 13 Репутация: нет Всего: 5 |
Custom Control - что-то типа своего контрола:
Например своя кнопка которую можно будет почти в любые проекты на любом языке внедрять (если ActiveX) Это сообщение отредактировал(а) FelikZ - 5.1.2007, 16:31 -------------------- ![]() |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 33 Всего: 183 |
ИМХО, устаревшая технология, и очень неудобная. Разве что только если писать на чистом API.
Собственно, это всего лишь DLL с реализацией оконной функции и регистрацией класса. Но использовать действительно можно где-угодно. И к ActiveX отношения не имеет - технология более старая. Альтернативы - если контрол для локального использования - писать на основе используемой библиотеки (например MFC), а если нужен контрол для широкого распространения, не привязанный к библиотеке - на основе ActiveX. -------------------- ... |
|||
|
||||
| Nastya |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 27.3.2002 Где: Мариуполь Репутация: 3 Всего: 44 |
Чесслово никогда не юзала за ненадобностью ;)
-------------------- Что бы понять рекурсию, надо понять рекурсию "Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор |
|||
|
||||
| GremlinProg |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
не длл, ни в коем разе, просто ресурс, который CreateDialog воспринимает, как имя класса и набор флагов. Если класс не зарегистрирован, то окно для custom control не создается. -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
| GremlinProg |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
Custom control предназначен в первую очередь для того, чтобы можно было в программе зарегистрировать какой-нибудь класс с Вашей процедурой окна, а в редакторе ресурсов разместить элемент этого класса на форме диалога в нужном месте. При этом отпадает необходимость обеспечивать очередь сообщений(для DialogBox) и создавать окно, CreateDialog это сделает сама. За разработчиком остается только обеспечить регистрацию компонента(RegisterClass/RegisterClassEx). По поводу совместимости с MFC, QT и т.п. здесь так же проблем нет в каждой такой оболочке есть возможность "подцепиться" к уже существующему окну, так что технологией это назвать ни как нельзя, простой интерфейс взаимодействия со сторонними классами. И конечно "устаревшая" - это не тот термин, котороый здесь можно применить, есть просто люди, которые занимаются разработкой ПО с его рождения, когда еще не было борланда с его красивыми формочками или не было возможности его использовать (есть много причин). А по скольку апишных девелоперов и по сей день не мало, то custom control для С-платформ - очень удобный инструмент.
-------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 33 Всего: 183 |
Ну, это дело вкуса... мне не нравится.
Я уже писала - если писать на голом WinAPi, да еще на C, - то да, практически и альтернативы-то нет, а если на классах каких-нибудь - то проще сразу в классах и делать. Поясню. Вот написали достаточно сложный контрол, скажем, GRID, как Custom Control. Т.е. имеем его интерфейс примерно в том же виде, как интерфейс системного ListView и прочая - масса сообщений, уведомлений, структур и т.д. Что мы делаем в первую очередь, если основное приложение у нас на классах? Правильно, пишем для нашего Custom Control объектную оболочку - опять же, аналогично MFC-оберткам. Не то, чтобы это было очень сложно, но зачем мучиться, если можно сразу нормальный класс написать... Ну да, на форму его сразу не положишь, придется создавать динамически, но, на мой взгляд - это недостаточное основание, чтобы возиться с Custom Control. Вот примерно так... -------------------- ... |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |