winapi c ++ HICON

时间:2013-04-01 18:52:44

标签: c++ winapi icons

我使用minGW和eclipse。 我以这种方式制作了HICON:

case WM_CREATE:
{
...
hIcon = (HICON)LoadImage(NULL, "icon.ico", IMAGE_ICON, 32, 32, LR_LOADFROMFILE);
if(hIcon) { SendMessage(hwnd, WM_SETICON, ICON_BIG, (LPARAM)hIcon); }
else { MessageBoxW(hwnd, "ico not found", "ico not found", MB_OK | MB_ICONERROR); }
...
}

因此,.ico必须与.exe位于同一文件夹中 我怎样才能将这个.ico构建到exe中?

2 个答案:

答案 0 :(得分:3)

使用.rc文件将.ico文件添加到可执行文件的资源中。然后在调用LoadImage()时,删除LR_LOADFROMFILE标志并在lpszName参数中指定资源的ID而不是文件名。例如:

MY_ICON ICON "icon.ico"

case WM_CREATE:
{
...
hIcon = (HICON) LoadImage(GetModuleHandle(NULL), "MY_ICON", IMAGE_ICON, 32, 32, 0);
...
}

答案 1 :(得分:2)

您可以使用资源文件。

有关更多信息,请参阅此处: http://msdn.microsoft.com/en-us/library/zabda143(v=vs.71).aspx