更改标题栏图标时如何正确使用LoadIcon和MAKEINTRESOURCE?

时间:2016-02-23 13:12:59

标签: c++ winapi codeblocks

我正在使用Code:Blocks c ++ win32中的一个项目。我在这个光荣的页面上读到了LoadIcon和MAKEINTRESOURCE的使用。但是,似乎我没有正确使用它们。我用Greenfish创建了一个图标并命名为'dvc icon'。它的格式为'.ico'。

当我执行程序时,我收到错误代码“无法打开图标文件'dvc icon.ico':没有这样的文件或目录。

以下是代码。

#include <resource.h>

#define IDI_OWNERDRAW                   103
#define IDI_BUTTON_ICO                  201

#define IDI_dvc icon                    205


         /* Use default icon and mouse-pointer */
wincl.hIcon   = LoadImage (GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_dvc icon));
wincl.hIconSm = LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_dvc icon), IMAGE_ICON, 16, 16, 0);
wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
wincl.lpszMenuName = NULL;                 /* No me                                                                                                                                                                                                                                  u */
wincl.cbClsExtra = 0;                      /* No extra bytes after the window class */
wincl.cbWndExtra = 0;                      /* structure or the window instance */

接下来我该怎么办? 任何帮助深表感谢。感谢。

1 个答案:

答案 0 :(得分:1)

hIcon使用的WNDCLASSEX结构中的hIconSm字段HICONRegisterClassEx字段。它分别指定在任务栏和窗口标题栏中使用的图标。您可以使用LoadImage获取有效的图标句柄。将其与MAKEINTRESOURCE一起使用可从嵌入资源中获取图标。

有关详细信息,请参阅LoadImage documentation