C++ NetBeans Win32 hwnd 图标

标签 c++ winapi netbeans icons

我在 NetBeans 中向我的应用程序窗口添加图标时遇到困难。该代码与 Win32 相关。每当我将图标添加到资源文件夹(在 NetBeans IDE 中) 时,LoadImage()LoadIcon() 方法都无法检索图标文件,我得到的结果是这些截图:

所以我想知道,我放置图标的位置有问题吗?如果是这样,我可以把图标放在哪里? (下面的项目目录):

enter image description here

如果与位置无关,或者我使用的位置正确,是否是我使用的代码? (下面的代码):

WNDCLASSEX wc;
HWND hwnd;
MSG Msg;

//Step 1: Registering the Window Class
wc.cbSize        = sizeof(WNDCLASSEX);
wc.style         = 0;
wc.lpfnWndProc   = WndProc;
wc.cbClsExtra    = 0;
wc.cbWndExtra    = 0;
wc.hInstance     = hInstance;
wc.hIcon         = LoadIcon(NULL, IDI_APPLICATION);
wc.hCursor       = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wc.lpszMenuName  = NULL;
wc.lpszClassName = g_szClassName;
wc.hIconSm       = LoadIcon(NULL, IDI_APPLICATION);

非常感谢您提供反馈。我真的很想知道这是怎么回事。谢谢。

-CA1K

编辑:上面显示的代码已设置回通常的状态,我只是想找到检索图标文件的方法。

最佳答案

@andlabs 是对的。 IDI_APPLICATION 在 WinUser.h 中定义为:

#define IDI_APPLICATION MAKEINTRESOURCE(32512)

你需要:

wc.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON));
wc.hIconSm = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_SMALLICON));

IDI_ICON 定义为数字的地方:

#define IDI_ICON 1

在 resource.rc 中:

IDI_ICON ICON "icon.ico"

这将设置任务栏中的图标。对于标题栏中的图标,请在 WM_CREAT 中使用:

HICON hicon = (HICON)LoadImage(GetModuleHandleW(NULL), MAKEINTRESOURCE(IDI_ICON), 
    IMAGE_ICON, 0, 0, LR_DEFAULTCOLOR | LR_DEFAULTSIZE);
SendMessage(hWnd, WM_SETICON, ICON_BIG, (LPARAM)hicon);

-------------------------------------------- ----------

编辑:

简单的测试,试试

在resource.rc 文件中:

1 ICON "icon.ico"

在 .cpp 文件中:

wc.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(1));

关于C++ NetBeans Win32 hwnd 图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33661833/

相关文章:

winapi - 如何在MFC中创建可调整大小的CDialog?

windows - 为内存跟踪应用程序 Hook 调用 HeapAlloc 的僵局

c# - 确定分配的 'Handle' 类型

java - 使用 GlassFish 从 SOAP 服务 Java 抛出异常 -> 故障

c++ - Qt选择矩形位置

c# - C++ 回调到 C# 函数期间出现 NullReferenceException

c++ - 在 C++ 中仅使用 std::string 而不是 char 数组和 std::vector/list 而不是数组是否有任何实际限制?

C++子类将父类的名称误认为字段

java - 在 NetBeans 上运行代码

java - 为什么在此代码中会出现 "Component cannot be created"错误?