更改生成exe文件的图标

  1. 在程序res文件夹下,删除MFC图标文件XXX.ico
    注:
    一定要先删除原文件,否则会把你的图标文件覆盖掉;
  2. 加入自己的图标文件:icon.ico
  3. 在图标IDR_MAINFRAME的属性对话框中,修改File name路径为自己的图标文件。
    完成后在资源视图中可能发现还是原来的MFC图标,但编译后exe文件的图标已经变成自己的了。

其他方法参考:

方法二:

Change ICON of MFC Application and Dialog - CodeProject

1、在资源视图Icon下加入想用的图标;

2、修改该图标的value值,把值改为Icon下几个图标中最小的:

(1)方法一:打开Header Files下的Resource.h,找到Icon下的图标,系统默认是从128开始的,

#define IDR_MAINFRAME              128

#define IDR_ICONTETYPE             129(单/多文档程序的文档图标) #define IDI_ICON1                       130 #define IDI_ICON2                       131

可以修改全部的value值,也可以只修改想用的图标,只要保证value值是Icon下几个图标中最小的就可以;

(2)方法二:在图标的属性对话框中,在ID后面加上=value,比如IDI_ICON1=127,也要保证value值是Icon下几个图标中最小的。

方法三:

1、在资源视图中删除Icon下的IDR_MAINFRAME和IDR_ICONTETYPE;

2、加入想用的图标,可以改名为IDR_MAINFRAME,也可以不改;

3、如果不改名为IDR_MAINFRAME,则在程序中要修改相应的代码:

基于对话框的程序,在构造函数中有一句

m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);

记得把IDR_MAINFRAME改为你自己的图标名。

下面是改变运行时图标的办法(不会改变EXE中的ICON):

extern CDNA_Bridge_DemoApp theApp;
// 第一个参数是替换的ico文件路径,可自行补完
//调用方法很简单,例如下面这样就可以了
//ReplaceExeIco(_T("F://11.ico"));
void ReplaceExeIco( LPCTSTR lpszIco)
{
        HICON hIcon, hIconSm;
		CWnd* cwnd = theApp.m_pMainWnd;
		HWND hwnd = cwnd->GetSafeHwnd();
        hIcon = (HICON)LoadImage(NULL, "icon.ico", IMAGE_ICON, 32, 32, LR_LOADFROMFILE);
        if(hIcon)
            SendMessage(hwnd, WM_SETICON, ICON_BIG, (LPARAM)hIcon);
        else
            MessageBox(hwnd, "Could not load large icon!", "Error", MB_OK | MB_ICONERROR);

        hIconSm = (HICON)LoadImage(NULL, "icon.ico", IMAGE_ICON, 16, 16, LR_LOADFROMFILE);
        if(hIconSm)
            SendMessage(hwnd,WM_SETICON, ICON_SMALL, (LPARAM)hIconSm);
        else
            MessageBox(hwnd, "Could not load small icon!", "Error", MB_OK | MB_ICONERROR);
}
  1. Replacing ICON resources in EXE and DLL files - CodeProject

  2. 通过代码实现EXE文件图标的替换