C ++ NetBeans Win32 hwnd图标

时间:2015-11-11 23:31:18

标签: 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

编辑: 上面显示的代码已恢复正常,我只是想方设法检索图标文件。

1 个答案:

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