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