Как установить размер и прозрачную / прозрачную кнопку и значок cmfctoolbar в mfc?

Я создал несколько (CMFCToolBar) панелей инструментов и добавил к ним кнопки и значки. Я читал на официальном сайте Microsoft, что CMFCToolBar имеет размер кнопки 23x22 и размер значка 16x15 (ссылка: ссылка).

Если я использую для значков 16x15, значки выглядят размытыми. Это потому, что значки изначально имеют размер 16x16. Я использовал функцию SetSizes(CSize (23,23), CSize(16,16)) для изменения размера значка, но значки отображаются неправильно:

image

Есть ли другой способ установить размер значка и кнопки?


Обновлять

Я вызвал функцию SetSize перед созданием панели инструментов, но значок все еще выглядит немного размытым:

Image

Я хочу знать, есть ли способ установить прозрачность значка / кнопки или сделать его ясным, как мы можем сделать панель инструментов прозрачной через TBSTYLE_TRANSPARENT в функции CreateEx.

Не меняйте вопрос после того, как вы получили ответ. Если у вас есть новый вопрос, нажмите кнопку Задать вопрос.

IInspectable 10.09.2018 12:49

Извините, больше не сделаю :)

Fatema 11.09.2018 08:19

Я написал оба вопроса, чтобы не ошибиться. Я буду осторожен в будущем.

Fatema 11.09.2018 09:28
1
3
1 076
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

SetSizes - это статическая функция, которая влияет на всю библиотеку.

Его следует вызывать перед созданием любой панели инструментов или объекта меню. Лучшее место - в InitInstance вашего приложения.

Но мой совет: используйте рекомендуемые размеры! 16x15 и 23x22 ....

Прозрачность может быть достигнута с помощью стандартных 32-битных растровых изображений RGB / A. Если у вас 16-цветное растровое изображение, вы должны использовать RGB (192,192,192) в качестве стандартного цвета для фона. Он автоматически заменяется на нужный цвет фона.

Это тоже было ответил здесь.

Перед созданием я вызвал функцию SetSizes, но теперь значок выглядит немного размытым. Я редактирую свой вопрос. Пожалуйста, проверьте подробности

Fatema 10.09.2018 12:27

Это другой аспект. Но я изменил свой ответ.

xMRi 10.09.2018 14:02

Обратите внимание, что в SO вы всегда должны открывать новый вопрос, если новая тема, которую вы хотите задать, охватывает другой аспект, как в этом случае. Вопрос о прозрачности не имеет ничего общего с вашим основным вопросом! Если вас не интересуют такие правила, ваш вопрос может быть поставлен на голосование или отложен ...

xMRi 10.09.2018 15:05

Хорошо спасибо. Больше этого делать не буду.

Fatema 11.09.2018 07:17

В связи с проблемой прозрачности я хочу упомянуть, что у меня есть значки .ico, а не растровые изображения. В вопросе я добавил картинку, на которой значок появляется размытым / нечетким. Как я могу это сделать?

Fatema 11.09.2018 09:19

@Fatema: чтобы предотвратить визуальные артефакты, не масштабируйте изображения. Кроме того, .ico - это контейнерный формат. Он может содержать значки различных типов, включая значки в кодировке PNG с попиксельной альфа-прозрачностью. Также файлы .ico могут хранить одно или несколько изображений. Просто добавьте изображения того размера, который вы планируете использовать.

IInspectable 11.09.2018 10:04

Другие вопросы по теме