Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание control'а 
:(
    Опции темы
AntonS1
Дата 4.10.2007, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здравствуйте. Программированием занимаюсь недавно.
Мне необходимо реализовать свою компоненту(control) на основе существующей-Win32.
Т.е. дописать своего( !!!на C#!!! ). Подскажите с чего начать,
и как это впринципе делается(вообще как создать компоненту, перехват событий,...).
Хотелось бы подробнее. Есть в сети какой-нибудь материал по этому поводу?
Спасибо.

Это сообщение отредактировал(а) AntonS1 - 4.10.2007, 14:21
PM MAIL   Вверх
AntonS1
Дата 5.10.2007, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Ну кто-нибудь расскажите куда рыть. Есть стандартная визуальная компонента Win32, необходимо сделать ее динамической. Т.е. дописать своего. Именно переделать, либо на основе чего-либо сделать с 0. Использовать C#.
Вообще идеи есть какие-нибудь? Как это делается.
PM MAIL   Вверх
ivashkanet
Дата 5.10.2007, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

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



AntonS1, нифига непонятно что ты хочешь.....  smile 
Цитата(AntonS1 @  5.10.2007,  16:50 Найти цитируемый пост)
Есть стандартная визуальная компонента Win32, необходимо сделать ее динамической

Что хоть за компонента? Если в .Net есть ее аналог, то легко, а если нет, то ... нет. Увы
PM MAIL WWW ICQ   Вверх
thomas
Дата 5.10.2007, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

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



AntonS1
Цитата

Ну кто-нибудь расскажите куда рыть.

Например сюда
А так в поиск.
Из твоих постов совершенно непонятно что  ты собираешься делать и что не получается.

Добавлено через 1 минуту и 13 секунд
ivashkanet
как всегда опередил.  smile 


--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
AntonS1
Дата 5.10.2007, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



 
Цитата
Что хоть за компонента? Если в .Net есть ее аналог, то легко, а если нет, то ... нет. Увы


TreeView - он статичен. Необходимо сделать его динамическим, т.е в зависимости от "источника/поставщика данных", который может располагаться на серваке(но то уже потом, вначале можно поставить "заглушки") и постоянно меняться.
PM MAIL   Вверх
mr.DUDA
Дата 5.10.2007, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


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

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



Создаём NativeWindow, вызываем AssignHandle с window handle окна компоненты, потом перекрываем WndProc и обрабатываем события по коду. Больше ничего с 100%-нэйтивной компонентой сделать не получится, если речь конечно не об ActiveX.


--------------------
user posted image
PM MAIL WWW   Вверх
ivashkanet
Дата 5.10.2007, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

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



 smile 
thomas, я залажу на форум от случая к случаю. И вообще "подгребаю" только интересные мне темы (напр начал знакомиться с XML и XPath) либо где все молчат (как тут).



модератор: не оффтопь, плиз!

Это сообщение отредактировал(а) mr.DUDA - 5.10.2007, 17:17
PM MAIL WWW ICQ   Вверх
mr.DUDA
Дата 5.10.2007, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


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

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



Цитата(AntonS1 @  5.10.2007,  17:14 Найти цитируемый пост)
TreeView - он статичен. Необходимо сделать его динамическим, т.е в зависимости от "источника/поставщика данных", который может располагаться на серваке(но то уже потом, вначале можно поставить "заглушки") и постоянно меняться.

Если это стандартный TreeView, без наворотов, то почему не поюзать одноименный контрол из WinForms ?


--------------------
user posted image
PM MAIL WWW   Вверх
AntonS1
Дата 5.10.2007, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Да, еще возможно добавление катинок к узлам.
Данные берутся с удаленного места, связь может прерываться, поэтому необходим cash.
И еще, рост дерева может быть громаден, поэтому потоками нужно обновлять узлы.

Блин, конкретнее, где рыть, я не являюсь продвинутым программистом. Ключевые слова.
PM MAIL   Вверх
mr.DUDA
Дата 5.10.2007, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


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

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



Цитата(AntonS1 @  5.10.2007,  17:22 Найти цитируемый пост)
Блин, конкретнее, где рыть, я не являюсь продвинутым программистом. Ключевые слова.

Ключевое слово: System.Windows.Forms.TreeView

Читать в частности MSDN.

user posted image

 smile 


--------------------
user posted image
PM MAIL WWW   Вверх
AntonS1
Дата 5.10.2007, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата
Создаём NativeWindow, вызываем AssignHandle с window handle окна компоненты, потом перекрываем WndProc и обрабатываем события по коду. Больше ничего с 100%-нэйтивной компонентой сделать не получится, если речь конечно не об


Можно по подробнее?
PM MAIL   Вверх
mr.DUDA
Дата 5.10.2007, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


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

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



Цитата(AntonS1 @  5.10.2007,  17:28 Найти цитируемый пост)
Можно по подробнее?

Пример конкретно чего Вам нужен?


--------------------
user posted image
PM MAIL WWW   Вверх
AntonS1
Дата 5.10.2007, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Конкретно?
Мне вообще хотелось бы посмотреть, как это делается. Как можно дописать своих вещей в компоненту.
Сталкиваюсь с этим в 1 раз, задание стоит у меня, не знаю что делать. Программированием занимаюсь недано.

Да и "Создаём NativeWindow, вызываем AssignHandle с window handle окна компоненты, потом перекрываем WndProc и обрабатываем события по коду. Больше ничего с 100%-нэйтивной компонентой сделать не получится," - немного подлиннее расписать Вы бы не могли?
PM MAIL   Вверх
mr.DUDA
Дата 5.10.2007, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


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

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



Проясняю вопрос. Своих кнопок/чекбоксов/фич в компоненту с пом. NativeWindow добавить не получится, да и набор возможностей которые можно реализовать с пом. NativeWindow сводится только к обработке Win32-сообщений (это которые WM_blablabla), если вы о них в курсе. К примеру, можно обработать передвижение мышки, нажатие клавиши, щелчок по контролу и т.п. - всё на очень низком уровне, практически голый WinAPI. В качестве реакции на сообщения WinAPI, можно опять-таки послать своё сообщение (низкоуровневая ф-ция SendMessage) и ничего более. Примеры использования WinAPI в коде C#, вместе с кодами сообщений, можно посмотреть на www.pinvoke.net. Описания всех сообщений есть в MSDN.

Ничего более толкового или простого в использовании NativeWindow не даёт, НО это единственный способ взаимодействия с компонентой (что бы ни подразумевалось под ней - класс MFC, WTL или чистый винапи, или ещё что-то из чужой DLL-ки). Подчёркиваю, единственный.

Есть только одно исключение, но вы так и не ответили на вопрос в каком виде компонента, поэтому сложно судить подходит этот случай или нет -- так вот, если компонента представляет собой ActiveX/COM, то добавляется на тулбокс из пункта контекстного меню "Choose Items...", после чего её можно использовать (изменять свойства, вызывать методы). Расширить функциональность можно опять-таки на минимальном уровне - например кинуть поверх компоненты кнопку с тулбокса.


--------------------
user posted image
PM MAIL WWW   Вверх
AntonS1
Дата 5.10.2007, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо. Про WM_blablabla знаю. 
Ну а как тогда пишутся компоненты в конкретных фирмах? Их же не устраивает базовая функциональность компоненты, оне переделывают ее полностью, это точно, я слышал.
Как? Дизассемблируют? и дописывают? )))))))
Ладно, поразбираюсь пока  и задам более конкретный вопрос.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




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


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

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