天天看点

wxWidgets_xpm文件

XPM(X Pixmap)是X Windows系统使用的一种图片文件格式。最初由位于法国Sophia Antipolis的Bull研究中心的Daniel Dardailler和Colas Nahaboo发明,后来Arnaud Le Hors对其进行了改进。

XPM主要用于创建图标位图文件,并支持“transparent color”功能。XPM文件格式源自更早的X BitMap(XBM),是一种符合C语言语法的纯文本文件。

它可以通过#include语句可以将XPM格式的图形数据导入C语言源文件中。

基本格式:

static char *<variable_name>[] = {
	<Values>
	<Colors>
	<Pixels>
	<Extensions>		
};
           

例子:

/* XPM */
static char *xface[] = {
	/* Values */
	"48 4 2 1",
	
	/* Colors */
	"a c #ffffff",
	"b c #000000",
	
	/* Pixels */
	"abaabaababaaabaabababaabaabaababaabaaababaabaaab",
	"abaabaababaaabaabababaabaabaababaabaaababaabaaab",
	"abaabaababaaabaabababaabaabaababaabaaababaabaaab",
	"abaabaababaaabaabababaabaabaababaabaaababaabaaab",
};
           

在wxWidgets使用xpm文件:

可以使用XnConvert将图片转换成xpm文件。

在wxWidgets代码中,先include xpm文件,再用SetIcon(wxIcon(qiang_xpm))来使用;这里的qiang_xpm就是xpm文件中所定义的静态变量。

#include "qiang.xpm"
MyFrame::MyFrame(const wxString &title) : wxFrame(NULL, wxID_ANY, title)
{
	SetIcon(wxIcon(qiang_xpm));

	wxMenu *fileMenu = new wxMenu;
	
	wxMenu *helpMenu = new wxMenu;
	
	helpMenu->Append(wxID_ABOUT, wxT("&About...\tF1"), wxT("Show about dialog"));
	
	fileMenu->Append(wxID_EXIT, wxT("E&xit\tAlt-X"), wxT("Quit this program"));
	
	wxMenuBar *menuBar = new wxMenuBar();
	menuBar->Append(fileMenu, wxT("&Fie"));
	menuBar->Append(helpMenu, wxT("&Help"));
	
	SetMenuBar(menuBar);
	
	CreateStatusBar(2);
	SetStatusText(wxT("Welcome to wxWidgets!"));
}
           

结果:

wxWidgets_xpm文件

继续阅读