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