|
А как в обычном VB6 меню радио-баттонов понаставить.
|
|||
---|---|---|---|
#18+
Т.е. кружочки (выбираем опцию), а не галочки (отмечаем опцию). В google пару страниц пролистал, не нашел. Думаю невозможного в этом нету... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2013, 10:41 |
|
А как в обычном VB6 меню радио-баттонов понаставить.
|
|||
---|---|---|---|
#18+
Штатно никак. Только извращениями типа через АПИ или стороннего компонента меню. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2013, 10:47 |
|
А как в обычном VB6 меню радио-баттонов понаставить.
|
|||
---|---|---|---|
#18+
Shocker.Proтипа через АПИ. Ну и? как? Пока нашел вот это: CheckMenuRadioItem function Но не знаю с какого конца подобраться. Там про какие-то группы говорится, очевидно группа радио-кнопок. Ток вот как ее обозначить-зафиксировать, видимо при инициализации формы. Почему извращение? Стандартная WIN фича, и не новая в отличии от стрипбара, как там его. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2013, 10:57 |
|
А как в обычном VB6 меню радио-баттонов понаставить.
|
|||
---|---|---|---|
#18+
Ты спрашивал про "обычное VB6 меню". Под "обычным" я обычно понимаю штатные средства )) а по АПИ - это мне у тебя консультироваться, а не наоборот ) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2013, 10:59 |
|
А как в обычном VB6 меню радио-баттонов понаставить.
|
|||
---|---|---|---|
#18+
нет под рукой VB6, пример из API-Guide 3.7: Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2013, 11:47 |
|
А как в обычном VB6 меню радио-баттонов понаставить.
|
|||
---|---|---|---|
#18+
но, я бы сказал, вид не на много лутше чем у галочек (в win2000). ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2013, 11:50 |
|
А как в обычном VB6 меню радио-баттонов понаставить.
|
|||
---|---|---|---|
#18+
Дмит, В Windows 7 смотрится так ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2013, 12:01 |
|
А как в обычном VB6 меню радио-баттонов понаставить.
|
|||
---|---|---|---|
#18+
Да не, все сделал. Код: 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.
Не вижу смысла лепить самопальные ф-ции, проще тупо 3 API в одном выражении написать по смыслу места. Ну я как бы не под 2000-й работаю, ориентируюсь на 7-ки и 8-ки хотя и на XP на классике сижу. И потом, если есть список из 10 стилей, из которых пользователь должен выбрать один (тематический стиль тулбара конкретно -ясно что не на XP, он на XP этого подменю и не увидит) -на фига мне галочки -не есть гуд. Задал себе как бы вопрос, как узнать какой пункт выбран. VB-шный checked как бы не соответствует хотя и MFS_CHECKED как утверждается. Да ну его, проще в параллельной переменной хранить. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2013, 12:25 |
|
А как в обычном VB6 меню радио-баттонов понаставить.
|
|||
---|---|---|---|
#18+
к теме относяться ещё функции ModifyMenu и GetMenuItemInfo первой возможно проще воспользоваться 1 раз, вместо вызова CheckMenuRadioItem второй можно определить MFT_RADIOCHECK ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2013, 13:55 |
|
А как в обычном VB6 меню радио-баттонов понаставить.
|
|||
---|---|---|---|
#18+
Дмитрий77 Но не знаю с какого конца подобраться. Там про какие-то группы говорится, очевидно группа радио-кнопок. Ток вот как ее обозначить-зафиксировать, видимо при инициализации формы.Их не надо фиксировать. First и last задают границы индексов, в пределах которых нужно отключать галочки при клике на меню. Если, например, в меню из шести пунктов выбран первый, кликнул по пятому а границы задал с четвертого по шестой, то у тебя будет две галочки — с первой по третью они не снимутся. Дмитрий77 но, я бы сказал, вид не на много лутше чем у галочекМожно задать собственные картинки хоть для каждого пункта меню по отдельности. По две картинки, "включено", "выключено". Можно пункты меню отрисовывать целиком через custom draw. Дмитрий77 Задал себе как бы вопрос, как узнать какой пункт выбран.GetMenuItemInfo ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2013, 15:43 |
|
А как в обычном VB6 меню радио-баттонов понаставить.
|
|||
---|---|---|---|
#18+
AntonariyДмитрий77 Задал себе как бы вопрос, как узнать какой пункт выбран.GetMenuItemInfo Типа сделал: Код: 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.
Ну, можно конечно и set запихнуть в функцию: Public Sub SetRadioMenuChecksB(frm As Form, ByVal mnuItem As Long, _ Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Только какие-то неуниверсальные эти ф-ции все равно получаются, я предусмотрел 2 уровня вложенности, при необх. можно еще Optional добавить. С универсальностью туго. По хорошему по VB-имени меню надо все вычислять, Смысла не вижу, неоправданные усилия. Плюс границу группы каждый раз указывать явно, типа буков много. Короче эти функции проще делать под конкретную задачу. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2013, 19:49 |
|
А как в обычном VB6 меню радио-баттонов понаставить.
|
|||
---|---|---|---|
#18+
Неблагодарная это работа, vbшное меню украшать. Лучше взять стороннее целиком апишное и допилить. По сравнению с common controls гемороя на порядок меньше. Я как-то начал такой проект, но забросил, почувствовав необходимость мигрировать с VB6 на новые технологии. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2013, 19:59 |
|
А как в обычном VB6 меню радио-баттонов понаставить.
|
|||
---|---|---|---|
#18+
Antonariy, Ради 3-х кружочков кажется проще так. Собственно ничего сложного. Задачу меню с картинками я пока не ставил. И не рассказывай как, а то растравишь душу, а надо как бы дело (до)делать. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2013, 21:16 |
|
А как в обычном VB6 меню радио-баттонов понаставить.
|
|||
---|---|---|---|
#18+
Проблема возникла. Если верхняя полоска меню скрыта, т.е. Код: vbnet 1. 2.
(или какие-то пункты верхние скрыты) А я использую Код: vbnet 1. 2. 3.
То вся эта байда перестает работать Наблюдения такие: 1. Если например Код: vbnet 1. 2.
то надо ставить mnuBarIndex=0 вместо mnuBarIndex=1 (он че, на visible mnuBarIndex ориентируется?), тогда еще будет работать 2. Если "поставить кружочек", потом сделать Код: vbnet 1. 2.
то кружочек стирается Даже если потом вернуть Код: vbnet 1. 2.
то он не появляется. Как выкручиваться. Форма маленькая, чуть кастомизированная, шапка формы убрана. Верхнее меню не в кассу. Но есть красивый ребар-тулбар, и пользователь вызвав его контекстное меню может выбрать его стиль. Галки после "стольких трудов" использовать для этого не хочу. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2013, 16:27 |
|
А как в обычном VB6 меню радио-баттонов понаставить.
|
|||
---|---|---|---|
#18+
Дмитрий77Если верхняя полоска меню скрыта, т.е. Код: vbnet 1. 2.
А я использую Код: vbnet 1. 2. 3.
То вся эта байда перестает работать Как выкручиваться. Ну вроде выкрутился. Смысл в том, что если меню не видимо (в верхней полоске), то при вызове popup оно каждый раз создается заново с новым hwndMenu, а не с одним и тем же соответствующем subMenu как в случае присутствия в верхней полоске меню. При выгрузке popup это меню соответственно уничтожается, и информация о том что item был radio уничтожается тоже, информацию про галку VB6 видимо как-то хранит в своих "таблицах", а radio он ничего не знает, т.е. в этом случае radio не может быть ячейкой хранения информации. Делается так: Например есть: Код: vbnet 1. 2. 3.
Создаем дублирующее Код: vbnet 1. 2. 3.
И в нем храним "нужную галку" При загрузке формы проставляем например галку под "Property 1" (в скрытом дубле) Код: 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.
Ну а при вызове popup уже рисуем radio на нужном menu_ViewGroupProperty в соответствии с галкой на скрытом menu_GroupHideProperty WM_INITMENUPOPUP дает hwnd(popupMenu) + нек. свойства, напр. надо исключить системное меню, ну и правдами и неправдами не перепутать с чем-нибудь "чужим" -решение зависит от контекста - универсальности фиг добьешься. Код: 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.
Не, ну дурдом еще тот конечно. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2013, 01:08 |
|
|
start [/forum/topic.php?fid=60&msg=38221410&tid=2157028]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
46ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 153ms |
0 / 0 |