powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / treeview shorcutmenu
9 сообщений из 9, страница 1 из 1
treeview shorcutmenu
    #34525396
shanton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пытаюсь сделать контекстное меню для TreeView. Метода RightClick я тут не нашол. Попробовал на MouseDown написать:

IF button=2
WITH This
IF ISNULL(.SelectedItem)
RETURN .F.
ENDIF

IF ISNULL(.SelectedItem.Parent)
ThisForm.RightClick_Archives()
ELSE
ThisForm.RightClick_Archiv()
ENDIF
ENDWITH
ENDIF

Метод RightClick_Archives и RightClick_Archiv рисует меню. Так вроде работает, но только если контекстное меню одно для всех item. В даном случае я отслеживаю какой item выбран (.SelectedItem), но вот тут то и проблемы. Метод MouseDown наступает до того как item стаёт выбраным, и получается что .SelectedItem возвращает предыдущий item.
Я правельно выбрал, что начинаю плясать от MouseDown, или может надо начинать с NodeClick, но как там определить, что нажата правая клавиша мыши? Если всё таки с MouseDown, то как сдесь правельно определить выбраный item? Большое спасибо!
...
Рейтинг: 0 / 0
treeview shorcutmenu
    #34525512
shanton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я думаю, что если создавать контекстное меню для TreeView с медота MouseDown, то для определния выбраного item можно использовать значене горизонтальной и вертикальной позиции миши (x, y). А как определить какому item соответствуют эти x и y?
...
Рейтинг: 0 / 0
treeview shorcutmenu
    #34525545
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Плохо искал. Буквально радом

http://www.sql.ru/forum/actualthread.aspx?tid=428588
...
Рейтинг: 0 / 0
treeview shorcutmenu
    #34525700
shanton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Искал, чесное слово. Большое спасибо! Легко нам, которым всё готовое на блюдичке подносят. А как люди до этого сами додумывались?
...
Рейтинг: 0 / 0
treeview shorcutmenu
    #34525853
shanton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так понимаю вмемто GetActiveWindow() можно использовать дескриптор окна HWND? Но они почему-то возвращают разные значения. Правда свойства nTwipX и nTwipY в результате получаются одинаковые, по 15 при использовании GetActiveWindow() и тоже самое при использовании ThisForm.HWND
...
Рейтинг: 0 / 0
treeview shorcutmenu
    #34526348
shanton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На MouseDown я нарисовал меню, так как посоветовал уважаемый ВдалимерМ, всё получилось. Но почемуто, когда правой клавишей нажимаю на каком-то item и моявляется меню, метод NodeClick этого item не работает. Когда на MouseDown чисто, при нажатии првой клавишей миши на item, NodeClick срабатывает, а когда на MouseDown вызываем меню - нет. Почему? Большое спасибо!
...
Рейтинг: 0 / 0
treeview shorcutmenu
    #34526401
shanton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Остаётся развечто в ручную на MouseDown вызывать NodeClick выбраного item. Но правельно ли это?
Когда появляется контекстное меню treeview, то основное меню _SCREEN получается неактивным. Так должно быть? Это конечно мелочи.
...
Рейтинг: 0 / 0
treeview shorcutmenu
    #34526855
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shantonОстаётся развечто в ручную на MouseDown вызывать NodeClick выбраного item. Но правельно ли это?
Когда появляется контекстное меню treeview, то основное меню _SCREEN получается неактивным. Так должно быть? Это конечно мелочи.
По ссылке в примере в событии TreeView.MouseDown есть комментарий. Почитайте, что там написано...
...
Рейтинг: 0 / 0
treeview shorcutmenu
    #34527909
Kruchinin Pahan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shantonЯ так понимаю вмемто GetActiveWindow() можно использовать дескриптор окна HWND? Но они почему-то возвращают разные значения. Правда свойства nTwipX и nTwipY в результате получаются одинаковые, по 15 при использовании GetActiveWindow() и тоже самое при использовании ThisForm.HWND
Поясняю. Вы работаете с TreeView. Оно как activex имеет свой собственный HWND, который является Child'ом для ThisForm.HWND. Поэтому, в общем случае, если мы хотим получить параметры Twips, лучше все-таки получать их от TreeView окна, а не от окошка формы (ThisForm.HWND). Другой вопрос, что чаще всего возвращаемое значение будет равно 15.
Поэтому здесь и используется GetActiveWindow.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / treeview shorcutmenu
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]