如何以编程方式将默认应用程序图标更改为自定义图标,即不使用资源文件(只需在EXE文件旁边放置一个图标).
我只知道一种使用资源文件的方法,但我想知道一种以编程方式执行此操作的方法(代码和外部图标).
另外,我尝试了以下代码:
HANDLE hIcon = LoadImage(0, L"icon.ico", IMAGE_ICON, 0, 0, LR_DEFAULTSIZE | LR_LOADFROMFILE);
HWND hwnd = GetConsoleWindow();
if (hIcon) {
//Change both icons to the same icon handle.
SendMessage(hwnd, WM_SETICON, ICON_SMALL,(LPARAM) hIcon);
SendMessage(hwnd, WM_SETICON, ICON_BIG, (LPARAM) hIcon);
//This will ensure that the application icon gets changed too.
SendMessage(GetWindow(hwnd, GW_OWNER), WM_SETICON, ICON_SMALL, (LPARAM) hIcon);
SendMessage(GetWindow(hwnd, GW_OWNER), WM_SETICON, ICON_BIG, (LPARAM)hIcon);
}
Run Code Online (Sandbox Code Playgroud)
但该代码只是更改窗口左下角的图标,而不是应用程序EXE文件.
如何以编程方式设置应用程序EXE文件的图标?
EXE无法在运行时以可编程方式更改自己的图标(它只能更改其UI窗口中显示的图标,如您所发现的).EXE的图标必须静态存储在EXE的资源中,即操作系统查找图标的位置.EXE运行时,EXE的资源无法更改.
但是,您可以创建EXE的快捷方式,然后更改快捷方式的图标.
| 归档时间: |
|
| 查看次数: |
90 次 |
| 最近记录: |