Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769

Как в пунктах меню сделать переключатель Option (круглешок с точкой) для выбора, вместо галочки, с помощью AppendMenu?

17.08.2023, 18:47. Показов 707. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как в пунктах меню сделать переключатель Option (круглешок с точкой) для выбора, вместо галочки, с помощью AppendMenu???

При создании меню, мне понадобилось добавить некоторые настройки своей программы прямо в меню, если с галочками всё понятно, достаточно просто использовать флаг MF_CHECKED, то с переключателями радио-кнопками вообще ничего не понятно. Такой константы, такого флага в MSDN я не нашёл. Для функции AppendMenu. Помогите пожалуйста!

Добавлено через 31 минуту
Ладно, буду тогда свои круглешки рисовать, раз никто не знает как.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.08.2023, 18:47
Ответы с готовыми решениями:

Сделать option списка selected после выбора option другого списка
Ребят, такая проблема. У меня есть div "new_div", который содержит список изделий. У каждого изделия есть имя и название проекта, к...

Как в меню сделать так чтобы в выпадающих строках ставились галочки при нажатии?
Как в меню сделать так чтобы в выпадающих строках ставились галочки при нажатии? При этом что бы галочка была только на один из пунктов...

Как с помощью maskedTextBox сделать маску например A1:C10 для выбора диапазона ячеек Excel
Доброго времени суток, собственно как с помощью maskedtextbox сделать маску например A1:C10 для выбора диапазона ячеек Excel книги ? ...

15
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
17.08.2023, 19:02  [ТС]
Вот я нарисовал круглешки, осталось только встроить их в меню и всё)
Изображения
  
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
17.08.2023, 19:10  [ТС]
Возможно на фреймворках это и можно сделать, вот здесь что-то такое написано: https://learn.microsoft.com/en... esktop-4.8
Но без фреймворка наверное только самому рисовать эти круглешки)

Добавлено через 3 минуты
Там написано:

Кнопки выбора, также известные как переключатели, аналогичны флажкам, за исключением того, что пользователи могут выбирать только по одному за раз. Хотя по умолчанию класс ToolStripMenuItem не обеспечивает поведение переключателя, класс предоставляет поведение флажка, которое можно настроить для реализации поведения переключателя для пунктов меню в элементе управления MenuStrip.

Короче говоря, как я понял, в меню по умолчанию это сделать невозможно. API этого не может. Поэтому буду свои картинки вставлять да и всё.
0
Эксперт по электронике
6520 / 3149 / 332
Регистрация: 28.10.2011
Сообщений: 12,368
Записей в блоге: 7
17.08.2023, 22:37
Функцией SetMenuItemBitmaps можно добавить картинку в пункт меню. Таким образом можно эмулировать переключатель.
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
18.08.2023, 12:08  [ТС]
locm, да у меня есть хороший класс для этого, у испанцев скачал

Добавлено через 5 минут
locm, вот отсюда http://leandroascierto.com/blog/clsmenuimage/
это самая лучшая разработка для быстрого и простого встраивания картинок в меню, испанцы рулят

Добавлено через 35 секунд
и сайт кстати очень интересный по VB много чего есть хорошего, редкий сайт достаточно

Добавлено через 6 минут
Цитата Сообщение от locm Посмотреть сообщение
Функцией SetMenuItemBitmaps
Там они кстати, для установки картинки в меню, используют более мощную функцию SetMenuItemInfo, плюс реализовано для XP через субклассирование. Функция же SetMenuItemBitmaps хоть и хорошая но только от Windows Vista.
0
Эксперт по электронике
6520 / 3149 / 332
Регистрация: 28.10.2011
Сообщений: 12,368
Записей в блоге: 7
18.08.2023, 12:28
Цитата Сообщение от HackerVlad Посмотреть сообщение
Функция же SetMenuItemBitmaps хоть и хорошая но только от Windows Vista.
Откуда информация?
Она доступна начиная с Windows 95 http://vsokovikov.narod.ru/New... itmaps.htm
Не исключаю что возможно была в Windows 3.1.
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
18.08.2023, 12:55  [ТС]
Я же читал в MSDN

Добавлено через 2 минуты
Вот полезные ссылки в MSDN по этой теме: https://learn.microsoft.com/en... dfrom=MSDN
И ещё: https://learn.microsoft.com/en... (v=msdn.10)

Добавлено через 3 минуты
Например в Windows XP можно через пользовательскую отрисовку меню поменять и шрифт и цвет и ещё и иконки поменять. В семёрке с визуальным стилем так уже не получится, к сожалению, если меню стилизованное темой. Но в MSDN есть статья как такие меню менять, но это сложно.

Добавлено через 9 минут
Из этих статей в MSDN я понял следующее: во времена Windows XP не существовало единого способа для изменения меню для добавления картинок своих. Поэтому люди использовали оконную процедуру и полностью перерисовывали меню. И визуального стиля единого небыло для меню. Поэтому у всех приложений были разные стили меню... Начиная с Windows Vista теперь появился единый способ менять картинки в меню, очень простой способ, и это теперь работает для меню с визуальным стилем.

Добавлено через 2 минуты
Единственное что не понятно это как например поменять шрифт или цвет одного какого-то конкретного пункта меню, в меню с визуальным стилем, чтобы ещё и картинка сохранялась при этом в Windows Vista+ и чтобы стиль сохранялся системный... Вот эта задача супер-сложная, но для XP простая, лишь потому что там нет визуальных стилей для меню

Добавлено через 2 минуты
locm, а SetMenuItemBitmaps хоть и доступен с Windows 95, как ты верно это заметил, но всё равно нельзя реализовать смену картинок в меню без субклассирования отлова оконной процедуры самого меню и пользовательской ручной перерисовки

Добавлено через 57 секунд
С чем успешно справляется класс clsMenuImage.cls кстати)
0
Эксперт по электронике
6520 / 3149 / 332
Регистрация: 28.10.2011
Сообщений: 12,368
Записей в блоге: 7
18.08.2023, 13:06
Цитата Сообщение от HackerVlad Посмотреть сообщение
Я же читал в MSDN
Там написано что поддержка начиная с Windows 2000 https://learn.microsoft.com/en... tembitmaps

Цитата Сообщение от HackerVlad Посмотреть сообщение
SetMenuItemBitmaps хоть и доступен с Windows 95, как ты верно это заметил, но всё равно нельзя реализовать смену картинок в меню без субклассирования отлова оконной процедуры самого меню и пользовательской ручной перерисовки
Картинки меняются. Не раз так делал во времена WinXP.
Сейчас поддержка WinXP не имеет смысла. На современное железо Win7 не получится поставить не говоря про WinXP.
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
18.08.2023, 13:20  [ТС]
Цитата Сообщение от locm Посмотреть сообщение
начиная с Windows 2000
Врут, у них всё начиная с Windows 2000)))) Меньше чем Windows 2000 они вообще не признают) На самом деле, начиная с Windows 95 и это правда) Сайт http://vsokovikov.narod.ru/ в этом плане конечно лучше, что говорит правду)

Добавлено через 1 минуту
Цитата Сообщение от locm Посмотреть сообщение
На современное железо Win7 не получится поставить
Получится, но дров может не быть, стало с этим гораздо хуже теперь конечно

Добавлено через 2 минуты
Поэтому прежде чем покупать новое железо нужно сначала убедиться, что найдутся драйвера для семёрки под это железо иначе покупать не имеет смысла, новое не значит, что лучше

Добавлено через 1 минуту
А вот WinXP и правда уже устарел. Про семёрку так не скажешь сейчас. На семёрке ещё много кто, и я тоже конечно.

Добавлено через 56 секунд
А то, что они браузер не хотят обновлять для семёрки мне на них наплевать вообще, если честно.
0
Эксперт по электронике
6520 / 3149 / 332
Регистрация: 28.10.2011
Сообщений: 12,368
Записей в блоге: 7
18.08.2023, 13:23
Цитата Сообщение от HackerVlad Посмотреть сообщение
Получится
Во время установки синий экран и с этим ничего не сделать.
Железо не совместимо с Win7. Попробуйте поставить Win7 на комп с сокетом 1200 или 1700 и убедитесь в этом.

Цитата Сообщение от HackerVlad Посмотреть сообщение
Поэтому прежде чем покупать новое железо нужно сначала убедиться, что найдутся драйвера для семёрки под это железо
Нового железа нет совместимого с Win7.

Цитата Сообщение от HackerVlad Посмотреть сообщение
новое не значит, что лучше
Предлагаете пользоваться компом с 775 сокетом?
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
18.08.2023, 19:06  [ТС]
Под AMD семёрка обычно хорошо идёт

Добавлено через 1 минуту
У меня AMD Athlon FX(tm) 4300 четырёхядерный, великолепно для семёрки

Добавлено через 29 секунд
Что я предлагаю так это не пользоваться десяткой этим Г

Добавлено через 1 минуту
Сокет AM3+

Добавлено через 40 секунд
Цитата Сообщение от locm Посмотреть сообщение
Во время установки синий экран и с этим ничего не сделать.
Таких компьютеров я ещё не встречал, чтобы семёрка не устанавливалась вообще

Добавлено через 15 секунд
А я семёрку уже 500 людям поставил, ни у кого проблем неблыо

Добавлено через 41 секунду
Цитата Сообщение от locm Посмотреть сообщение
Нового железа нет совместимого с Win7.
Не правда, есть

Добавлено через 1 минуту
locm, читай сам, если мне не веришь Windows 7 и современное железо (совместимость)
0
19.08.2023, 00:01

Не по теме:

Цитата Сообщение от HackerVlad Посмотреть сообщение
У меня AMD Athlon FX(tm) 4300
Он выпущен больше 10 лет назад.
Я же пишу про современное железо, выпущенное после 2020 года.

Цитата Сообщение от HackerVlad Посмотреть сообщение
читай сам, если мне не веришь
На 1200 и 1700 сокетах Win7 не запускается и это факт, а в той теме под современным железом подразумевают устаревший 1155 сокет.

0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
19.08.2023, 00:11  [ТС]
Итак вернёмся к моей основной теме. Никто мне не дал точного ответа, но я всё же смог найти решение. Я случайно нашёл у испанцев. Я же спрашивал про переключатели в меню. Свои конечно хоть я и смог нарисовать, но это не совсем то, что нужно. Лучше использовать системные переключатели в меню. Я очень благодарен испанцам за их труд. Вот здесь чёткий ответ на мою тему: http://leandroascierto.com/blog/tag/menu/
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
19.08.2023, 00:14  [ТС]
Как же я благодарен испанцам, это именно то, что мне нужно!
Миниатюры
Как в пунктах меню сделать переключатель Option (круглешок с точкой) для выбора, вместо галочки, с помощью AppendMenu?  
1
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
19.08.2023, 00:15  [ТС]
Гений по имени Leandro Ascierto нидавно написал новый класс для меню. Спасибо ему большое. В интернете это было очень сложно найти кстати. У русских точно не видел такого.
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
19.08.2023, 16:45  [ТС]
MFT_RADIOCHECK нужно использовать оказывается

Добавлено через 3 часа 43 минуты
Мне никто не мог подсказать, а это оказалось настолько просто!!! А я ведь даже изначально, подумывал о том, что это невозможно сделать вообще... А оказалось так просто!!! Просто нужно использовать флаг MFT_RADIOCHECK. И мне никто не сказал этого, неужели никто не знает Win32 API на этом форуме!? А ещё обиднее, что даже в MSDN этого не сказано в описании к функции AppendMenu.

Вот и всё решение:

Visual Basic
1
AppendMenu hMenu, MF_CHECKED Or MFT_RADIOCHECK, 1, "Название нового пункта меню"
И всё!!! И всё работает теперь прекрасно!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.08.2023, 16:45
Помогаю со студенческими работами здесь

как сделать меню выбора?
сталкнулся с проблемой,нужно сделать меню!в столбик будут выставлены названия,клавишами вверх\вниз выбираеш и жмеш Enter и выводится...

Как сделать красивое меню выбора ОС?
Вот в Мандриве2007 меню очень приятное, а вот в Убунту, Федоре, и вроде АСП оно тоскливое, текстовое. Как сделать красиво? В Искре...

Как изменить отображение материалов в пунктах меню joomla 3.1
Подскажите пожалуйста, как изменить отображение материалов в пунктах меню? Тоесть, что бы материалы отображались не списком, а полностью....

Как в checkbox вместо галочки поставить букву?
Как в checkbox вместо галочки поставить букву?

Как сделать подобное меню выбора элементов
Привет всем!) Сижу уже не первый час и пытаюсь понять, как же всё-таки сделать подобный выбор элементов (на картинке есть пример), чтобы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru