C++ NetBeans Win32 hwnd 图标

C++ NetBeans Win32 hwnd icon

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

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

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

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));