我用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中?

最佳答案

使用.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);
...
}

关于c++ - Winapi C++ HICON,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15749682/

10-10 18:11