Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|
как добавить свой обработчик в стандартное меню edit контролов |

06.07.2009, 19:53
|
|
Статус пользователя:
Регистрация: 26.07.2005
Сообщений: 568
Провел на форуме: 1290766
Репутация:
1236
|
|
как добавить свой обработчик в стандартное меню edit контролов
ну типа, правой кнопкой щелкаем на эдите - и вылазит - вставить, вырезать, етц. ток нужно это глобально, чтоб во всех эдитах работало. типа своего обработчика.
на сях желательно, хотя код не важен - нужен концепт. так что на любом языке впринципе, ес есть инфа...
__________________
 
snow white world wide
|
|
|

06.07.2009, 20:38
|
|
Постоянный
Регистрация: 20.03.2009
Сообщений: 564
Провел на форуме: 991929
Репутация:
395
|
|
есть такая тема как саббклассинг (контроль сообщений окон путем модификации оконной процедуры последних) и суперклассинг (создание и регистрация нового класса окна в системе).
вот хорошая статья на wasm [1] [2] и вроде не плохая для delphi
ну это я вижу решение этой проблемы в создании собственного элемента окна... возможно есть другие пути... но я точно уверен что эта тема сработает )
|
|
|

06.07.2009, 20:38
|
|
Reservists Of Antichat - Level 6
Регистрация: 12.02.2006
Сообщений: 891
Провел на форуме: 1892597
Репутация:
836
|
|
Сообщение от sn0w
ну типа, правой кнопкой щелкаем на эдите - и вылазит - вставить, вырезать, етц. ток нужно это глобально, чтоб во всех эдитах работало. типа своего обработчика.
на сях желательно, хотя код не важен - нужен концепт. так что на любом языке впринципе, ес есть инфа...
примеры на C#.
имхо самый простой способ это в RunTime привязать.
Примерно так:
PHP код:
public void SetMenu()
{
foreach (Control control in Controls)
{
if (control is TextBox)
{
(control as TextBox).ContextMenu = new ContextMenu(new[] { new MenuItem("button1"), new MenuItem("button2")});
}
}
}
Либо наследоваться от контрола и в конструкторе сделать привязку.
PHP код:
public class MyClass : TextBox
{
public MyClass()
{
this.ContextMenu = new ContextMenu(new [] {new MenuItem("button1"), new MenuItem("button2")});
}
}
было 666 сообщений 
__________________
*********************************
*Я не волшебник ٩(๏̯͡๏)۶, только учусь...*
*********************************
Программы на заказ
Times to fly...
|
|
|

06.07.2009, 20:50
|
|
Статус пользователя:
Регистрация: 26.07.2005
Сообщений: 568
Провел на форуме: 1290766
Репутация:
1236
|
|
Сообщение от Gar|k
есть такая тема как саббклассинг (контроль сообщений окон путем модификации оконной процедуры последних) и суперклассинг (создание и регистрация нового класса окна в системе).
вот хорошая статья на wasm [1] [2] и вроде не плохая для delphi
ну это я вижу решение этой проблемы в создании собственного элемента окна... возможно есть другие пути... но я точно уверен что эта тема сработает )
ну да, но не совсем то, но все равно сенкс!
__________________
 
snow white world wide
|
|
|

06.07.2009, 20:54
|
|
Статус пользователя:
Регистрация: 26.07.2005
Сообщений: 568
Провел на форуме: 1290766
Репутация:
1236
|
|
W!z@rD а у меня блин 333)
вот на шарпе я увы не втыкаю %) апибы)
__________________
 
snow white world wide
|
|
|

06.07.2009, 21:01
|
|
Участник форума
Регистрация: 23.07.2008
Сообщений: 202
Провел на форуме: 3075657
Репутация:
122
|
|
Я бы сделал свой класс наследник Edit'а. А дальше меняй/дописывай что хочешь. И юзай свой класс.
на C#
Код:
public class MyEditBox : System.Windows.Forms.TextBox
IMHO самый простой способ, если только уместно создавать свой класс..
|
|
|

06.07.2009, 21:17
|
|
Постоянный
Регистрация: 26.12.2007
Сообщений: 353
Провел на форуме: 905389
Репутация:
332
|
|
в C++Builder или Delphi
Есть такой замечательный компонент TPopupMenu, а у всех Tedit'ов есть замечательное свойство PopupMenu для подключения к эдиту TPopupMenu....
кидаеш на форму TPopupMenu заполняеш ему итемы выделяеш все едиты и в поле свойств PopupMenu выбираеш компонент PopupMenu1 теперь у всех выделенных едитов будет появляться твое меню.... и обрабатываться тобой)
p.s. возможно я не ясно понял вопрос, но если я его понял правильно то это легкое решение...
p.p.s. если же едитов очень много то лучше написать класс основанный на Tedit и сразу в классе подключить popupmenu с определёнными полями и зарание предустановленной обработкой событий
|
|
|

06.07.2009, 21:36
|
|
Участник форума
Регистрация: 03.02.2009
Сообщений: 104
Провел на форуме: 270228
Репутация:
70
|
|
Привет от мазохистов: PopUp меню, которое выпадает по клику, правой кнопки мыши на эдит...
|
|
|

06.07.2009, 21:44
|
|
Статус пользователя:
Регистрация: 26.07.2005
Сообщений: 568
Провел на форуме: 1290766
Репутация:
1236
|
|
нее вы не поняли. это вообщемто atl получается. вот нашел похожее - но там встраивание в контекстное меню в оболочке. а мне аналогичное встраивание во все обработчики comctl
__________________
 
snow white world wide
|
|
|

06.07.2009, 21:53
|
|
Участник форума
Регистрация: 03.02.2009
Сообщений: 104
Провел на форуме: 270228
Репутация:
70
|
|
да если честно, я не понял поэтому погадаю немного):
http://www.rsdn.ru/article/qna/controls/editpret.xml
Еси опять не то, тогда сорри.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|