博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
修改MFC主窗口界面标题和图标的方法
阅读量:5873 次
发布时间:2019-06-19

本文共 1853 字,大约阅读时间需要 6 分钟。

BOOL CLEDApp::InitInstance()

中,关于默认的图标的程序:

CSingleDocTemplate* pDocTemplate;    pDocTemplate = new CSingleDocTemplate(        IDR_MAINFRAME,        RUNTIME_CLASS(CLEDDoc),        RUNTIME_CLASS(CMainFrame),       // main SDI frame window        RUNTIME_CLASS(CLEDView));    AddDocTemplate(pDocTemplate);

二.修改图标(可以)

替换默认的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是32×32,small icon是16×16

一.修改标题

标题分为前后两部分,前面一部分默认是文档名,后面一部分默认是工程名,比如我新建一个叫做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之前的部分

 

改前部分标题

 

1,可以在文档程序的,onNewDocument中用

SetTitle函数。

BOOL CViewDoc::OnNewDocument(){    if (!CDocument::OnNewDocument())        return FALSE;    ((CEditView*)m_viewList.GetHead())->SetWindowText(NULL);    // TODO: add reinitialization code here    // (SDI documents will reuse this document)    SetTitle("xxx");    return TRUE;}

 

转载于:https://www.cnblogs.com/rechen/p/5100593.html

你可能感兴趣的文章
activity
查看>>
优秀网页设计:25个精美的旅游网站设计示例
查看>>
深入浅出SQL Server中的死锁
查看>>
手把手玩转win8开发系列课程(12)
查看>>
App Store 审核指南
查看>>
cisco2950交换机上配置vtp
查看>>
一定话搞定CSS透明度问题
查看>>
一个WebRequest+代理+POST登录
查看>>
arm linux嵌入式开发入门与进阶---开发板推荐
查看>>
解决Window7x64安装IE10无法运行的问题
查看>>
做socket保持长连接的一些心得
查看>>
Lumia 800 7.10.8858.136
查看>>
The disk cannot be added to Cluster Shared Volumes because it does not have any suitable partitions
查看>>
C#: 鼠标和键盘的输入事件
查看>>
Google Code 创建开源项目
查看>>
Script:收集数据库中用户的角色和表空间等信息
查看>>
Java连接MySql
查看>>
gdb调试命令
查看>>
ASP.NET 网站部署 Part.1(安装IIS、复制文件部署网站)
查看>>
怎样才能当上项目经理?(转)
查看>>