wxWidgets利用透明图片自定义工具条
?查看了wxWidgets官方論壇,又google了好些地方,才發現wxWidgets里顯示透明圖片其實很簡單,但為了避免遺忘,還是在這里做一個記錄吧:
將原來的透明圖片如example.png等,利用AnthemionImageBlocks轉換為所需大小的xpm格式,再用notepad++或者UltraEdit之類的軟件,編輯xpm文件,將其中透明的部分設置為“None”,即可在程序中實現透明顯示。
?
?
另外,再附上xpm文件的基本機構
XPM文件的基本結構是
static char * <pixmap_name>[] ={
<Values>
<Colors>
<Pixels>
<Extensions>
};
其中Values部分相當于圖像文件的文件頭,它由
<width><height><numcolors><cpp> [<x_hotspot><y_hotspot> ] [ XPMEXT ]
構成,其中x_hotspot,y_hotspot,XPMEXT是可選的。
width:圖像的寬度,像素為單位
height:圖像的高度,像素為單位
numcolors:顏色數
cpp:每個像素占用的字符長度
x_hotspot:熱點的X軸位置
y_hotspot:熱點的Y軸位置
Colors部分定義的是調色板的信息,它由
<character> {<key><color> } {<key><color> }構成
character是顏色索引值,key是關鍵字,color是顏色值
key可以有以下幾種選項:
m:單色
s:符號名稱
g4:4級灰度
g:灰度
c:彩色
color也可以由以下幾種構成:
顏色名稱
#開頭的十六進制數表示RGB空間顏色值
%開頭的十六禁止數表示HSV空間顏色值
符號名稱
字符串NONE,表示該顏色是透明色
Pixels部分表示實際的像素,全部采用調色板中定義的索引,由等同于圖像像素高度的行構成。
Extension部分可以自己定義一些圖像附件信息,如作者,標題等,形如
XPMEXT <extension_name><extension_data_string>單行的擴展
XPMEXT <extension_name>
<extension_data_string1>
<extension_data_string2>
多行的擴展
Extension部分必須以XPMENDEXT標志結束。
例子如:
static char * plaid[] =
{
"22 22 4 2 0 0 XPMEXT",
" c red m white s light_color",
"Y c green m black s ines_in_mix",
"+ c yellow m white s lines_in_dark ",
"x m black s dark_color ",
"x x x x x x x x x x x x + x x x x x ",
" x x x x x x x x x x x x x x x x ",
"x x x x x x x x x x x x + x x x x x ",
" x x x x x x x x x x x x x x x x ",
"x x x x x x x x x x x x + x x x x x ",
"Y Y Y Y Y x Y Y Y Y Y + x + x + x + x + x + ",
"x x x x x x x x x x x x + x x x x x ",
" x x x x x x x x x x x x x x x x ",
"x x x x x x x x x x x x + x x x x x ",
" x x x x x x x x x x x x x x x x ",
"x x x x x x x x x x x x + x x x x x ",
" x x x x Y x x x ",
" x x x Y x x ",
" x x x x Y x x x ",
" x x x Y x x ",
" x x x x Y x x x ",
"x x x x x x x x x x x x x x x x x x x x x x ",
" x x x x Y x x x ",
" x x x Y x x ",
" x x x x Y x x x ",
" x x x Y x x ",
" x x x x Y x x x ",
"XPMEXT ext1 data1",
"XPMEXT ext2",
"data2_1",
"data2_2",
"XPMEXT ext3",
"data3",
"XPMEXT",
"data4",
"XPMENDEXT"
};
總結
以上是生活随笔為你收集整理的wxWidgets利用透明图片自定义工具条的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MFC 图片部分透明
- 下一篇: Intel 平台编程总结----缓存的优