2013-03-12 65 views
0

我正在使用Windows 8 RTM和Visual Studio Express 2012 for Windows Desktop。我正在尝试编写在Visual C++中使用UIRibbon的应用程序。 (因为我只有Express版本,所以我无法访问MFC;请不要在答案中使用它。)图像透明度不起作用

问题与我在功能区中使用的图标有关。由于Windows 7兼容性是此项目的一项要求,因此我无法使用PNG图像;我被老派的BMP卡住了。问题是,虽然一些BMP显示正确,但大多数图像都有黑色的边界框。我怀疑这个问题与BMP文件有关,并且不在功能区XML文件或代码中。

正确显示的BMP我从互联网下载,作为我适应的样本的一部分。无法正确显示的BMP从ICO文件中提取,然后使用System.Drawing.Bitmap .NET API转换为32位图像。 (这个转换过程是作为我的构建过程的一部分,而不是在运行时完成的。)

我的问题是:以这种方式更改BMP的位深度是否会影响图像中的颜色?如果是这样,任何人都可以指出一个免费工具,可以将PNG文件转换为32位BMP文件,在Windows UIRibbon中正常工作?

回答

0

你说的Windows Ribbon Framework在这里?如果是这样,那么您将无法使用PNG,因为该框架仅支持Windows 7的BMP。使用Windows 8,您还可以使用PNG。有关更多信息,请参阅有关M SDN article

对于将您的PNG转换为兼容BMP文件的免费工具,您应该看看“​​”附带的视觉设计器。

您可以简单地将XML标记加载到编辑器中并添加图片。编辑器会根据需要将添加的文件转换为BMP。您还可以使用编辑器来检查您的Ribbon定义是否正确。它生成有效的“Windows Ribbon Framework”XML标记,因此您可以使用其他语言(如C++,C#或Delphi)中的标记文件来进一步开发应用程序。