|
|
|
treeview shorcutmenu
|
|||
|---|---|---|---|
|
#18+
Пытаюсь сделать контекстное меню для 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? Большое спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2007, 10:49 |
|
||
|
treeview shorcutmenu
|
|||
|---|---|---|---|
|
#18+
Я думаю, что если создавать контекстное меню для TreeView с медота MouseDown, то для определния выбраного item можно использовать значене горизонтальной и вертикальной позиции миши (x, y). А как определить какому item соответствуют эти x и y? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2007, 11:13 |
|
||
|
treeview shorcutmenu
|
|||
|---|---|---|---|
|
#18+
Искал, чесное слово. Большое спасибо! Легко нам, которым всё готовое на блюдичке подносят. А как люди до этого сами додумывались? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2007, 11:50 |
|
||
|
treeview shorcutmenu
|
|||
|---|---|---|---|
|
#18+
Я так понимаю вмемто GetActiveWindow() можно использовать дескриптор окна HWND? Но они почему-то возвращают разные значения. Правда свойства nTwipX и nTwipY в результате получаются одинаковые, по 15 при использовании GetActiveWindow() и тоже самое при использовании ThisForm.HWND ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2007, 12:25 |
|
||
|
treeview shorcutmenu
|
|||
|---|---|---|---|
|
#18+
На MouseDown я нарисовал меню, так как посоветовал уважаемый ВдалимерМ, всё получилось. Но почемуто, когда правой клавишей нажимаю на каком-то item и моявляется меню, метод NodeClick этого item не работает. Когда на MouseDown чисто, при нажатии првой клавишей миши на item, NodeClick срабатывает, а когда на MouseDown вызываем меню - нет. Почему? Большое спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2007, 14:35 |
|
||
|
treeview shorcutmenu
|
|||
|---|---|---|---|
|
#18+
Остаётся развечто в ручную на MouseDown вызывать NodeClick выбраного item. Но правельно ли это? Когда появляется контекстное меню treeview, то основное меню _SCREEN получается неактивным. Так должно быть? Это конечно мелочи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2007, 14:52 |
|
||
|
treeview shorcutmenu
|
|||
|---|---|---|---|
|
#18+
shantonОстаётся развечто в ручную на MouseDown вызывать NodeClick выбраного item. Но правельно ли это? Когда появляется контекстное меню treeview, то основное меню _SCREEN получается неактивным. Так должно быть? Это конечно мелочи. По ссылке в примере в событии TreeView.MouseDown есть комментарий. Почитайте, что там написано... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2007, 16:52 |
|
||
|
treeview shorcutmenu
|
|||
|---|---|---|---|
|
#18+
shantonЯ так понимаю вмемто GetActiveWindow() можно использовать дескриптор окна HWND? Но они почему-то возвращают разные значения. Правда свойства nTwipX и nTwipY в результате получаются одинаковые, по 15 при использовании GetActiveWindow() и тоже самое при использовании ThisForm.HWND Поясняю. Вы работаете с TreeView. Оно как activex имеет свой собственный HWND, который является Child'ом для ThisForm.HWND. Поэтому, в общем случае, если мы хотим получить параметры Twips, лучше все-таки получать их от TreeView окна, а не от окошка формы (ThisForm.HWND). Другой вопрос, что чаще всего возвращаемое значение будет равно 15. Поэтому здесь и используется GetActiveWindow. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2007, 06:04 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=34525512&tid=1589345]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
84ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
2ms |
| others: | 225ms |
| total: | 431ms |

| 0 / 0 |
