在 nana C++ GUI 应用程序中设置窗口图标

Posted

技术标签:

【中文标题】在 nana C++ GUI 应用程序中设置窗口图标【英文标题】:Setting the window icon in a nana C++ GUI application 【发布时间】:2017-03-23 00:24:48 【问题描述】:

我正在使用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 中运行(控制台)应用程序时,会使用默认的窗口图标。有什么我在这里想念的想法吗?

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

【参考方案2】:

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

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

【讨论】:

以上是关于在 nana C++ GUI 应用程序中设置窗口图标的主要内容,如果未能解决你的问题,请参考以下文章

Python中设置指定窗口为前台活动窗口(最顶层窗口)win32gui

在 C++ 中设置控制台窗口标题时遇到问题

此 Nana 演示代码中使用的 C++ 功能是啥?

如何将opengl用于nana c ++库?

如何使用命令行在窗口 10 中设置 Qt5 静态

如何在 GUI 线程外设置 QWidget 光标