初次接触wxWidgets,在写一个跨平台的程序时,发现在Windows平台上竟然无法通过下列代码更改exe可执行文件的图标:
#include <wx/msw/wx.rc>
app ICON "res/main.ico"
#define VERSIONINT 1,0,0,1
#define VERSIONSTR "1, 0, 0, 1"
1 VERSIONINFO
FILEVERSION VERSIONINT
PRODUCTVERSION VERSIONINT
FILEOS VOS__WINDOWS32
FILETYPE VFT_UNKNOWN
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "CompanyName", "QPSOFT.COM"
VALUE "FileDescription", "Portable Money"
VALUE "FileVersion", VERSIONSTR
VALUE "InternalName", "PMoney"
VALUE "LegalCopyright", "Copyright ? 2008 QPSOFT.COM"
VALUE "OriginalFilename", "pmoney.exe"
VALUE "ProductName", "PMoney"
VALUE "ProductVersion", VERSIONSTR
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 1033, 1200
END
END
这是在MainFrm中的设置方式,并实现了跨平台:
问题解决,特别记录一下。哦,对了,gimp在编辑图标时真的很好用!可以编辑xpm图标,也可以编辑ico图标。
SetIcon(wxICON(main));
但在Linux下测试是有效的。网上查资料,也没有人提到这个事。可能是我自学编程的原因吧,只好自己解决。通过研究wxWidgets的例子程序,发现他们都将图标放在了资源文件里(rc文件),决定尝试一下。这是资源文件:
#include <wx/msw/wx.rc>
app ICON "res/main.ico"
#define VERSIONINT 1,0,0,1
#define VERSIONSTR "1, 0, 0, 1"
1 VERSIONINFO
FILEVERSION VERSIONINT
PRODUCTVERSION VERSIONINT
FILEOS VOS__WINDOWS32
FILETYPE VFT_UNKNOWN
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "CompanyName", "QPSOFT.COM"
VALUE "FileDescription", "Portable Money"
VALUE "FileVersion", VERSIONSTR
VALUE "InternalName", "PMoney"
VALUE "LegalCopyright", "Copyright ? 2008 QPSOFT.COM"
VALUE "OriginalFilename", "pmoney.exe"
VALUE "ProductName", "PMoney"
VALUE "ProductVersion", VERSIONSTR
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 1033, 1200
END
END
这是在MainFrm中的设置方式,并实现了跨平台:
#ifdef __WXMSW__
SetIcon(wxICON(app));
#else
SetIcon(wxICON(main));
#endif // __WXMSW__
SetIcon(wxICON(app));
#else
SetIcon(wxICON(main));
#endif // __WXMSW__
问题解决,特别记录一下。哦,对了,gimp在编辑图标时真的很好用!可以编辑xpm图标,也可以编辑ico图标。