|
Отслеживание перемещения по меню
|
|||
---|---|---|---|
#18+
Хочется реализовать следующее: При перемещении по меню выделяются его пункты. Отследить выделение конкретного пункта и отобразить в Statusbar подсказку. (Это применяется во многих программах, напр. Outlook Expess) Пока не заморачиваюсь и использую стандартное меню vb6. Про пункт меню вижу только 'Click' Надо что-то типа OnSelected (menuitem) Реализуемо ли это как нибудь по простому? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2009, 11:24 |
|
Отслеживание перемещения по меню
|
|||
---|---|---|---|
#18+
Спасибо, не буду тратить время на ерунду. За 10 лет работы с Outlook Express я только на днях обратил внимание на этот "эффект". Стало быть для юзера он бесполезен и его "внедрение" не стоит описанных усилий. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2009, 14:11 |
|
Отслеживание перемещения по меню
|
|||
---|---|---|---|
#18+
С учетом новых экспериментов таки сделал: http://www.vb-helper.com/howto_display_menu_message.html Код: plaintext 1. 2. 3. 4. 5.
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41.
1) Глючит оно только в некот.(известно каких) пунктах меню Присваивает одинаковые menu_id 1-2-3-4 в верхней строке меню и первом столбце меню (пунктов у меня много), хотя lParam и разные, но результат один. Получается два неоднозначных пункта с одинаковыми именами, приходится для них дополнительно вызывать MF_BYPOSITION чтобы отсечь верхнюю строку меню 2) При играх с WindowProc не только для меню, но и для Listview если в среде VB6 закрывать приложение крестиком (END засунуто в form_unload), то среда vb6 молча закрывается. Если END убрать закрывается с критической ошибкой. На работе приложения как exe это не сказывается. Терпимо, но с чего бы это... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2009, 02:55 |
|
Отслеживание перемещения по меню
|
|||
---|---|---|---|
#18+
>не восстанавливаете оригинальную WindowProc и как это сделать? Что то добавить в ф-цию New*Winproc? Или присвоить Old*WinProc чего нибудь при form_unload? Я уже думал пробовал присваивать 0, vbNULL, NULL и т.п. Это не помогало... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2009, 12:36 |
|
Отслеживание перемещения по меню
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
vb6 схлопывается все равно как мыльный пузырь c ok или без него. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2009, 13:45 |
|
Отслеживание перемещения по меню
|
|||
---|---|---|---|
#18+
А лучше посмотрите здесь как лично я устанавливаю и снимаю сабклассинг. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2009, 14:12 |
|
Отслеживание перемещения по меню
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Но добавление "про меню" вполне достаточно (в form_load+ф-ция в модуле), чтоб этот "вылет" начал происходить при выходе. Но не целый же код моего приложения выкладывать? Да и не хотелось бы ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2009, 14:21 |
|
Отслеживание перемещения по меню
|
|||
---|---|---|---|
#18+
Странно, убрал END и даже без строк "восстанавливаете оригинальную WindowProc", то что пытался писать в form_unload, все стало корректно. Но 2 дня назад без end вылетало с критич. ошибкой , вроде ничего сильно нового не дописывал, кроме WindowProc для toolbar, даже код "стопорить невидимые столбцы в ListView" еще не интегрировал. А End я ставлю обычно на автомате, т.к. в нек. моих "разработках" после закрытия формы если этого не делать, приложение не закрывается (как правило если main+много форм и что-то м.б. упускаю). Здесь сейчас вроде закрывается, но кабы не сглазить, закрываться должно гарантированно. М.б. проще это End все таки вставлять перед компиляцией конечного рабочего exe-шника? Потому как для готового exe никаких негативов же нету. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2009, 15:11 |
|
Отслеживание перемещения по меню
|
|||
---|---|---|---|
#18+
Дмитрий77если этого не делать, приложение не закрываетсяЭто означает, что приложение спроектировано не правильно, уничтожаются не все объекты, возможно где-то возникают циклические ссылки. Jah loves you. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2009, 16:19 |
|
Отслеживание перемещения по меню
|
|||
---|---|---|---|
#18+
Дмитрий771) Глючит оно только в некот.(известно каких) пунктах меню Присваивает одинаковые menu_id 1-2-3-4 в верхней строке меню и первом столбце меню (пунктов у меня много), хотя lParam и разные, но результат один. Получается два неоднозначных пункта с одинаковыми именами, приходится для них дополнительно вызывать MF_BYPOSITION чтобы отсечь верхнюю строку меню Недочитал я MSDN: WM_MENUSELECT message MSDNwParam ...If the selected item opens a drop-down menu or submenu, this parameter contains the index of the drop-down menu or submenu in the main menu, and the lParam parameter contains the handle to the main (clicked) menu; use the GetSubMenu function to get the menu handle to the drop-down menu or submenu. Там другой код для drop-down menu or submenu должен быть. Плюс надо отдельно заниматься SYSMENU (меню окна Restore...Move..Close)-либо подавлять, либо описывать. Хотя мой старый (чуть глючный) код тьфу-тьфу подавлял пункты Sysmenu. Как-то так: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87.
Есть вопрос. Существуют ли системные стандартные описания подпунктов SYSMENU типа Код: vbnet 1. 2. 3. 4. 5.
И можно ли их вывести через какую-нибудь API? (я текст писал сам) (естественно если таковые есть, то они будут на родном языке системы). ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2013, 17:44 |
|
|
start [/forum/topic.php?fid=60&msg=36278996&tid=2157042]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
51ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 139ms |
0 / 0 |