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

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

17.08.2023, 18:47. Показов 738. Ответов 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
Эксперт по электронике
6819 / 3244 / 337
Регистрация: 28.10.2011
Сообщений: 12,669
Записей в блоге: 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
Эксперт по электронике
6819 / 3244 / 337
Регистрация: 28.10.2011
Сообщений: 12,669
Записей в блоге: 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
Эксперт по электронике
6819 / 3244 / 337
Регистрация: 28.10.2011
Сообщений: 12,669
Записей в блоге: 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
Эксперт по электронике
6819 / 3244 / 337
Регистрация: 28.10.2011
Сообщений: 12,669
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru