Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用wxIcon加载Windows预定义图标_Windows_Icons_Wxwidgets_Multiplatform - Fatal编程技术网

使用wxIcon加载Windows预定义图标

使用wxIcon加载Windows预定义图标,windows,icons,wxwidgets,multiplatform,Windows,Icons,Wxwidgets,Multiplatform,我试图将IDI_信息与wxWidgets 2.8.11(来自wx/version.h)(用于wxMemoryDC::DrawIcon)一起使用。但是首先我必须加载图标:wxICON(IDI_信息)失败,LoadFile(wxT(“IDI_信息”)也失败(但是LoadFile(IDI_信息)编译并崩溃,IDI_信息是一个假字符串指针,对于wxWidgets来说太棘手了)。嗯,然后我添加了一些ifdefs来使用Windows API:::LoadIcon(NULL,IDI_信息)工作,然后wxIco

我试图将
IDI_信息
与wxWidgets 2.8.11(来自wx/version.h)(用于
wxMemoryDC::DrawIcon
)一起使用。但是首先我必须加载图标:
wxICON(IDI_信息)
失败,
LoadFile(wxT(“IDI_信息”)
也失败(但是
LoadFile(IDI_信息)
编译并崩溃,
IDI_信息
是一个假字符串指针,对于
wxWidgets
来说太棘手了)。嗯,然后我添加了一些
ifdef
s来使用Windows API:
::LoadIcon(NULL,IDI_信息)
工作,然后
wxIcon::SetHICON
。虽然
DrawIcon
显然有效,但令人不快的是
wxIcon::GetWidth
wxIcon::GetHeight
返回0。嗯,让我们获取大小并使用
wxIcon::SetSize
。现在终于完成了。。。等待但谁会毁掉我的偶像?不确定,因此添加
ifdef
SetHICON(NULL)
destroy图标

小问题是:我必须自己销毁图标吗

最大的问题是:
wxIcon
在这种情况下完全没有用处吗


PS经过一些调试后,我发现
LoadFile(wxT(“wxICON\u信息”))
工作正常,哇!,但它真的是多平台的吗?我是否已经阅读了用于绘制标准图标的所有wx源代码?

跨平台解决方案由提供,只需将其
GetIcon()
方法与
wxART\u信息
参数一起使用即可。

非常好的解决方案,我仅用一行代码替换了所有代码。