收藏 分销(赏)

VS2010 更改MFC标题及标题栏图标和exe图标.docx

上传人:xrp****65 文档编号:6641847 上传时间:2024-12-19 格式:DOCX 页数:6 大小:131.83KB 下载积分:10 金币
下载 相关 举报
VS2010 更改MFC标题及标题栏图标和exe图标.docx_第1页
第1页 / 共6页
VS2010 更改MFC标题及标题栏图标和exe图标.docx_第2页
第2页 / 共6页


点击查看更多>>
资源描述
VS2010 更改MFC标题及标题栏图标和exe图标 在VS2010下新建一个MFC的多文档应用程序,程序默认的标题是“文档名-工程名”。图标默认的是写着MFC的三个方块。但在很多软件中都不是使用的默认设置,开发者们都将标题和图标改过,以符合项目要求,而且直观好看。 一 修改标题 (一)基于MFC对话框 *对话框标题栏内容为静态 MFC对话框型程序动态修改自身标题的方法有以下几种: 1. 直接在资源视图-Dialog-属性-外观的“Caption”中修改。 2. 最简单的是用对话框类自身的类函数: BOOL CMyDlg::OnInitDialog() {    CDialog::OnInitDialog();    ......    SetWindowText("My Title");    return TRUE;  // return TRUE  unless you set the focus to a control } 3. 其次还可以用API函数来完成:  ::SetWindowText(m_hWnd, "My Title");  或  ::SetWindowText(GetSafeHwnd(), "My Title");   m_hWnd 也是MFC对话框类的成员变量,可直接引用,GetSafeHwnd()的作用与其一样。 *对话框标题栏内容为动态生成的 在对应对话框的初始化函数OnInitDialog()中添加以下代码: CString title; title.Format("%d",Id);//在标题栏动态显示Id的值 this->SetWindowText(title); (二)基于MFC单、多文档 标题分为前后两部分,前面一部分默认是文档名,后面一部分默认是工程名,比如我新建一个叫做UITEST的工程,那标题就是“UITEST1-UITEST”。后面都用这个工程为例。 1.修改前半部分: 可以重载文档类的虚函数SetTile,如下 void CTestDoc::SetTitle(LPCTSTR lpszTitle) { CDocument::SetTitle(L"你的标题"); } 也可以在UITESTDoc.app中,在BOOL CUITESTDoc::OnNewDocument()函数中添加SetTitle(L"你的标题") 2.修改后半部分: 改资源字符串 在资源视图的String Table中找到IDR_MAINFRAME,将其标题改为你想要的标题 3.去掉-: 去掉标题中间的-,只显示后面的标题, 方法1:通过重载CFramWnd类的OnUpdateFrameTitle函数 virtual void OnUpdateFrameTitle(BOOL NaDa); void CMainFrame.:OnUpdateFrameTitle(BOOL NaDa) { CString csAppName; csAppName.Format(AFX_IDS_APP_TITLE); SetWindowText(csAppName); } 此时显示的结果只有字符串资源AFX_IDS_APP_TITLE所定义的字符串,当然也可以把SetWindowText(csAppName)中的csAppName换成你想要的标题字符串。 方法2:在CMainFrame的PreCreateWindow函数中修改窗口风格 BOOL CMainFrame.:PreCreateWindow(CREATESTRUCT& cs) { cs.style &= ~(LONG) FWS_ADDTOTITLE; return CFrameWnd::PreCreateWindow(cs); } 使用此方法,窗口的标题只显示IDR_MAINFRAME字符串中第一个\n之前的部分   二 修改图标 (一)VS2010程序文件夹下生成的exe文件图标 创建一个新工程,可以什么都不加。打开.rc,  创建或打开Icon资源(以下都以Icon为例)。     单击工程窗口的资源视图标签,选中资源ID为IDR_MAINFRAME图标资源,然后按Delete键把它删除掉,当然也可以不删,具体后面会讲到。     从资源菜单中选择Resource,然后选择Icon,添加资源,选中Icon类型,点击导入,此时会叫你选择本地的图片,记住必须选择.ioc格式的图片,否则导入失败。     把新图标的资源ID改为IDI_ICON(也可以不改)。 具体做法如下:  有一点很重要,你改知道就是 打开Header Files下的Resource.h,找到Icon下的图标,系统默认是从128开始的, #define IDR_MAINFRAME               128 #define IDR_ICONTETYPE              129(单/多文档程序的文档图标) #define IDI_ICON1                        130 #define IDI_ICON2                        131 VS2010程序文件夹下生成的exe文件图标是用Icon下几个图标中value值最小的,顺序为IDR_MAINFRAME、IDR_ICONTETYPE、新加 的,所以想更改生成的exe文件图标,只要保证图标的value值是Icon下几个图标中最小的就可以了 (1)导入自己的.ioc图片,并在Resource.h中,将自己加的icon资源Value改为最小,如下,因此不一定要删除IDR_MAINFRAME      #define IDR_MAINFRAME                   129     #define IDI_ICON1                               128(自己添加的icon)  (2)然后编译运行,找到你的debug目录,你将看到图标已经更改的.exe执行文件,这种方法可以将任何你喜欢的图片做成.exe文件图标   (二)修改运行程序标题栏图标 1. 基于MFC对话框 (1)如上操作,导入自己喜爱的ico图片,编辑新加icon的ID,比如我新加的Icon资源ID为 IDI_ICON1 (2)基于对话框的程序,在构造函数中有一句 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);   此时把IDR_MAINFRAME改为我的IDI_ICON1的图标名。 (3)编译运行你看到自己喜爱的图片出现在标题栏的位置了。   2. 基于MFC单、多文档 替换默认的MFC图标,先要自己画一个符合格式要求的位图或从外部导入一个图标,修改其属性名,假设为IDI_IDI1。在MainFrm的OnCreate()里添加如下代码: HICON m_hIcon; m_hIcon = AfxGetApp()->LoadIcon(IDI_IDI1); SetIcon(m_hIcon, TRUE); // Set big icon SetIcon(m_hIcon, FALSE); // Set small icon 其中big icon是32×32,small icon是16×16   (三).ico格式图片制作 http://ico.55.la/ 上面的网址可以将jpg .jpeg .gif .png  转换为.ioc 之后的操作你该会的!   整合以下几篇文章:       附:IDR_MAINFRAME字符串资源 声明这个篇文章来自: 感谢 打开程序资源文件(*.rc),展开“String Table”,找到ID为IDR_MAINFRAME的字符串资源,可看见它由“\n”字符分隔的7个字串,这可以从MFC生成向导第4步对话框上看到。对于IDR_MAINFRAME资源,可以利用CDocTemplate::GetDocString来获取各个字串,也可以根据每个子串定义设置它: 值说明 CDocTemplate::windowTitle 主窗口标题栏上的字符串,仅在SDI程序出现,MDI程序将以IDR_MAINFRAME字符串为默认值。 CDocTemplate::docName 缺省文档的名称。缺省是无标题。 CDocTemplate::fileNewName 文档类型的名称。如果应用程序支持多种类型的文档,此字符串将显示在"File/New"对话框中。如果没有指定,就不能够在"File/New"对话框处理这种文件。 CDocTemplate::filterName 文档类型的描述和一个适用于此类型的通配符过滤器。这个字符串将出现在“File/Open”对话框中的文件类型列表框中。要和CDocTemplate::filterExt一起使用。 CDocTemplate::filterExt 文档的扩展名。如果没有指定,就不能够在“File/Open”对话框中处理这种文档。要和CDocTemplate::filterName一起使用。 CDocTemplate::regFileTypeId 如果你以::RegisterShellFileTypes向系统的注册表注册文件类型,此值会出现在HKEY_CLASSES_ROOT之下成为其子项,并仅供Windows内部使用。如果没有指定,这种文件类型就无法注册。 CDocTemplate::regFileTypeName 这也是存储在注册表中的文件类型名称。它会显示于程序中用以访问注册表的对话框内。 因此,对于IDR_MAINFRAME资源标题(Caption)为: Hello\nNo Name\nGraphic\nText Files(*.txt)\n.txt\nGraphic.Document\nGraphic.Document 来说,对应下图:   【文件\新建】和【文件\打开】菜单项的命令响应函数都是CWinApp类提供的。CWinApp类有一个成员变量:m_pDocManager,它指向CDocManager对象的指针,即CWinApp负责管理文档管理器,而后者有一个文档模板指针链表:m_templateList,用来保存文档模板指针,即文档管理器负责管理文档模板,而后者又用来管理文档类、框架类和视类,一起为文档服务。 vs2010如何生成EXE文件如何更改EXE程序图标 vs2010如何生成EXE文件 F5启动调试后,进入下面路径查找: 我的文档\Visual Studio 2010\Projects\项目名称\项目名称\bin\Debug   如何更改EXE程序图标 其实更改生成的exe的图标很方便,用vs就能简单的实现。 右击 解决方案,选择属性 在弹出的窗口应用程序页签的图标栏,浏览到自己的ico文件。注意只能为ico文件,点击保存,再生成EXE文件。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服