Visual Studio 2010 - приложение C ++ MFC с ленточным интерфейсом - прозрачность в растровых изображениях - PullRequest
1 голос
/ 29 сентября 2010

Я играю с небольшим приложением, созданным мастером MFC, в Visual C ++ 2010, и я просто решил поместить свой собственный растровый рисунок в ресурсы, чтобы заменить растровое изображение MFC из трех кубов, которое отображается в приложении пользовательского интерфейса ленты Пуговица, он же «мрамор».

В оригинале использовался черный цвет (0,0,0) в качестве цвета прозрачности, но я не могу определить, что делает лента MFC (mfc-feature-pack stuff) в Visual Studio 2010 для определения прозрачности на растровое изображение, используемое в качестве основного значка ленты.

Свойства ленты (IDR_RIBBON) показывают Image = IDB_MAIN, а IDB_MAIN представляет собой растровое изображение 32x32 в формате BMP, загруженное из файла на диске с именем main.bmp.

Некоторые ресурсы растрового изображения в этом проекте выглядят так, как я и ожидал: пурпурный цвет становится прозрачным, но основное растровое изображение MFC не использует эту цветовую схему или палитру.

Вот пример реальных результатов, которые, я надеюсь, покажут, что результаты не те, что я хотел: alt text

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

Ответы [ 2 ]

2 голосов
/ 29 сентября 2010

Вам необходимо создать 32-битное растровое изображение с альфа-каналом для прозрачности. Метод, с помощью которого я это сделал, не очень прост, но это было единственное, что я мог придумать.

  • Используйте Paint.Net для преобразования исходного изображения в формат PNG, который сохраняет прозрачность. К сожалению, Paint.Net не поддерживает создание 32-битных растровых изображений напрямую.
  • Затем загрузите AlphaConv , который может создать 32-битное растровое изображение из файла PNG.
1 голос
/ 29 сентября 2010

Полупрозрачный PNG, возможно?Знаете ли вы, что файлы BMP также могут иметь альфа-каналы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...