2013-03-12 121 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)中的標記文件來進一步開發應用程序。