2

我正在使用nana在我的 C++ 应用程序中构建 GUI,它基本上可以正常工作。但是,我无法在 Windows 下设置窗口图标:

nana::API::window_icon_default(nana::paint::image("hunger.ico"));

hunger.ico在与可执行文件相同的文件夹中肯定有一个文件,我仔细检查了。该图标文件的大小为 32x32(或 16x16)。我还尝试检索图标文件的完整路径,如下所示:

wchar_t buffer[MAX_PATH];
DWORD len = sizeof(buffer);
GetModuleFileName(nullptr, buffer, len);
std::wstring ws(buffer);
// concatenate ws and "hunger.ico" here

但是当我在 VS2015 中运行(控制台)应用程序时,会使用默认的窗口图标。有什么想法我在这里想念的吗?

4

2 回答 2

1

这个电话对我很有效。该图标出现在应用程序窗口标题栏和任务栏中。

nana::API::window_icon(
    myform.handle(),
    nana::paint::image("myicon.ico"));

您需要传入应用程序表单的句柄(为什么?window_icon() 不应该接受表单并为自己提取句柄吗?)并且图标文件需要在具有不同分辨率的工作文件夹中

于 2017-07-06T13:14:26.910 回答
0

希望金豪能解决将图标加载到正在运行的程序的问题。

...但是,我不确定,但是如果您想要的 .exe 文件即使在带有 ico/bmp 的 Windows 资源管理器中也有,您需要将它包含到 .exe 中,并且可能只包含 nana不能那样做。我通过将图标作为资源添加到 VS 项目来解决了这个“问题”:在解决方案资源管理器中右键单击并添加...一个资源...选择一个图标,可以是新的...启动一个图标编辑器,您可以从中将任何图像格式导入您的图标。您仅在编译时需要图像文件,而在运行时不需要。

于 2017-03-23T21:18:09.587 回答