我使用 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); }
...
}
Run Code Online (Sandbox Code Playgroud)
因此,这样 .ico 必须与 .exe 位于同一文件夹中 我如何将此 .ico 构建到 exe 中?
使用 .rc 文件将 .ico 文件添加到可执行文件的资源中。然后在调用时LoadImage()
,去掉该LR_LOADFROMFILE
标志并在参数中指定资源的 IDlpszName
而不是文件名。例如:
MY_ICON ICON "icon.ico"
Run Code Online (Sandbox Code Playgroud)
。
case WM_CREATE:
{
...
hIcon = (HICON) LoadImage(GetModuleHandle(NULL), "MY_ICON", IMAGE_ICON, 32, 32, 0);
...
}
Run Code Online (Sandbox Code Playgroud)