我在向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
编辑: 上面显示的代码已恢复正常,我只是想方设法检索图标文件。
答案 0 :(得分:1)
@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));