我在 NetBeans 中向我的应用程序窗口添加图标时遇到困难。该代码与 Win32 相关。每当我将图标添加到资源文件夹(在 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));
关于C++ NetBeans Win32 hwnd 图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33661833/