VS2010 更改MFC标题及标题栏图标和图标.docx_第1页
VS2010 更改MFC标题及标题栏图标和图标.docx_第2页
VS2010 更改MFC标题及标题栏图标和图标.docx_第3页
VS2010 更改MFC标题及标题栏图标和图标.docx_第4页
VS2010 更改MFC标题及标题栏图标和图标.docx_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

VS2010 更改MFC标题及标题栏图标和exe图标在VS2010下新建一个MFC的多文档应用程序,程序默认的标题是“文档名-工程名”。图标默认的是写着MFC的三个方块。但在很多软件中都不是使用的默认设置,开发者们都将标题和图标改过,以符合项目要求,而且直观好看。一修改标题(一)基于MFC对话框*对话框标题栏内容为静态MFC对话框型程序动态修改自身标题的方法有以下几种:1. 直接在资源视图-Dialog-属性-外观的“Caption”中修改。2. 最简单的是用对话框类自身的类函数:BOOL CyDlg:OnInitDialog() CDialog:OnInitDialog(); .SetWindowText(My Title);return TRUE; / return TRUE unless you set the focus to a control3. 其次还可以用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开始的,#defineIDR_MAINFRAME128#define IDR_ICONTETYPE 129(单/多文档程序的文档图标)#defineIDI_ICON1 130#defineIDI_ICON2 131VS2010程序文件夹下生成的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 iconSetIcon(m_hIcon, FALSE); / Set small icon其中big icon是3232,small icon是1616(三).ico格式图片制作http:/ico.55.la/上面的网址可以将jpg .jpeg .gif .png转换为.ioc之后的操作你该会的!整合以下几篇文章:/link_/article/details/7261801/Romi/archive/2012/02/14/2351799.htmlhttp:/734507691./blog/static/1164804662010112383027130//s/blog_6a1cdb3f0101hbsj.html附:IDR_MAINFRAME字符串资源声明这个篇文章来自:/flyeagle88/blog/item/c1aa0c0e07862de037d1226c.html 感谢打开程序资源文件(*.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)为:HellonNo NamenGraphicnText Files(*.txt)n.txtnGraphic.DocumentnGraphic.Document来说,对应下图:【文件新建】和【文件打开】菜单项的命令响应函数都是CWinApp类提供的。CWinApp类有一个成员变量:m_pDocManager,它指向CDocManager对象的指针,即CWinApp负责管理文档管理器,而后者有一个文档模板指针链表:m_templateList,用来保存文档模板指针,即文档管理器负责管理文档模板,而后者又用来管理文档类、框架类和

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论