您的位置:首页 > 其它

MFC 标题栏动态加载自定义图标

2016-11-07 13:51 411 查看
1、MFC主窗体的OnInitDialog()中默认会添加以下代码:
//CDialog::OnInitDialog();
// TODO: Add extra initialization here
HICON m_hIcon;
m_hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);
SetIcon(m_hIcon,TRUE); //设置为大图标
SetIcon(m_hIcon,FALSE);//设置为小图标
//return TRUE;

2、其实LoadIcon支持传入相对或绝对路径的本地ICON文件,只是这个接口不知道什么时候已经停止使用,所以一直调用失败,导致原来默认的图标也消失了;

m_hIcon = AfxGetApp()->LoadIcon(_T("TestIcon.ico"));

3、通过LoadIcon的百度百科可以查阅到,该接口已经由LoadImage取代,无法实现动态加载ICON功能,故一直尝试失败,正确调用示例如下:

m_hIcon = (HICON)::LoadImage(NULL,_T("TestIcon.ico"),
IMAGE_ICON, 0, 0, LR_LOADFROMFILE);

OK,完美解决,这样每次需要修改客户程序版本,就不需要重新编译程序,而是由客户替换工作目录下ICON文件即可,节省了沟通和编译的时间与精力,同时也给予客户最大的修改权限。

项目需要MFC的自定义加载图标文件,不过主要做的UI框架可能是QT和BKWIN,有时间还得研究下这两个框架下怎么动态加载图标文件和标题栏标题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: