永发信息网

如何修改程序标题栏的文字

答案:3  悬赏:0  手机版
解决时间 2021-04-27 06:46

如图,如何修改这上面的文字,也就是程序左上角的名字

最佳答案






修改程序标题栏的文字和图标




1、修改文字


前半部分:


用class wizard 在文档类(×××Doc.cpp)添加这个函数


void CMy1111Doc::SetTitle(LPCTSTR lpszTitle)
{
// TODO: Add your specialized code here and/or call the base class

CDocument::SetTitle("你想改成的标题");
}
在SetTitle里写你要的标题,你的标题前半部分就改了。



后半部分:



可以在Resource资源管理器下,找到String Table项,在里面点第一行,把第一个斜杠n前的内容该成你想要的,就把后半部分改了,不想要的话可以直接删了。




2、更改图标


1、先将程序默认的图标删除(VC资源图标里)


2、自己制作一个图标,命名为与res文件夹里的ico图标相同的名称,替代它。提供一个在线制作ico图标的网址; http://www.bitbug.net/


3、将这个图片插入到VC中。在VC资源的Icon中选择IDR_MAINFRAME,插入—资源—选择位图(bitmap)—引入—选择图片即可。


4、调试程序。




还有一种在 BOOL CKeygoeApp::InitInstance()


方法中增加



m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);
m_pMainWnd->SetWindowText("个人通讯信息管理系统"); //--很重要的一行代码 简单吧 哈哈
m_pMainWnd->UpdateWindow();




摘 要:讨论基于MFC类库的Windows应用程序设计中,应用程序各种标题的改变方法。


关键词:MFC Windows编程标题Visual C++


0 引言


有一个演示VC++中的消息处理的单文档应用程序。该程序开始运行的情况如下:


窗口中的初始文档标题竞显示为Untitled,实在不尽人意。


有些时候, 确实需要改变自编Windows应用程序窗口的标题。比如,想编一个标题名为"Communication soft的软件。虽然在Windows95或Windows NT下,Visual C++(以下简称VC)可以生成以"Communication soft为名的工程,但该工程下的C++类的名称也要带上这么多的字符,给编程带来不便。可以采用的方法是生成以"CS为名的工程,再把程序的标题改成 "Communication Soft。再比如,在多文档应用程序中,希望每个子窗口的标题并不是"主窗口标题t、"主窗口标题2 ” ……这种类型,而是象"COM1速率"、"LPT并行口"……,即子窗口标题与主窗口标题无关。这时都需要改变各种窗口标题。下面介绍一下改变窗口标题所用的方法,所用的开发平台是usual C++5.0。


1 单又挡接口(SDI)典型窗口标题的改变


首先,来看看Windows SD!类型窗口标题栏的结构形式。用VC的AppWizard创建一个名为"Exam9的单文档类型的工程。开始运行时,程序主窗口标题形式如下:


Untitled-Exam9


其中"Untitied"为文档标题,"Exam9"为主窗口标题。当用"File-Open ” 打开"wd1.exm"文裆以后,文档标题变为"wd1.exm"。


所以程序主窗口标题栏的一般形式为:


文裆标题----主窗口标题


1.1 又档标题的改变


既然文档标题是由工程中相应的文档类所控制的,了解这一点,就可在相应的文档类中,利用SetTitle()函数来改变文档标题。


例:改变CExam9Doc::onNewDocument()函数为:


BOOL CExam9Doc::OnNewDocument()


{


if(!CDocument::OnNewDocument())


return FALSE-


SetTitle("文档标题");


return TRUE;


}


运行程序,则每次选择选单中的"文件"的"新建"选项时,标题就变成"文档标题-Exam9 ”


1.2 主窗口标题的改变


主窗口的标题默认是工程的文件名,正如前面Appvvazied生成的Exam9工程执行后,标题栏的形式总为"文档标题-Exam9。


改变主窗口的标题方法有两种:


第一种方法:利用ResourceView打开工程的资源,修改String Table中的


IDR_MAINFRAME的值。将原来的"Exam9\n\nExam9\nEXMFile(*.exm)\n.exm\nExam9.Document\nExam9 Document"改为"标题改变示例


\n\nExam9\nEXM File(*.exm)\n.exm\nExam9.Document\nExam9 Document"。这样改变后,主窗口标题就变为"-标题改变示例"。第二种方法:具体改变方法如下:


改变 CMainFrame的成员函数PreCreateWindowO为:


BOOL CMainFrame::PreCreateWindow(CREATESTRUCT&cs)


{


m_strTitle="上海市卢湾区业余大学 ” ;


return CFrameWnd::PreCreateWindow(cs);


}


这样改变后,主窗口标题的形式就为"-上海市卢湾区业余大学"。


M_strTile是CFrameWnd的保护成员(要得到m_strTile更详细的信息,请打开\msdev\mfc\include\afxwin.h文件)。CMainFrame则是CFrameWnd类的派生类。


在这两种改变方法中,第二种方法优先级高。也就是说,改变了m_strTitle的值后,IDR_MAlNFRAME的值就不起作用。


2 对多文挡接口(MDI)类型窗口标题的改变


在MDI类型窗口中,主窗口标题和文档标题的次序,和SDl类型窗口中次序是不同的。结合具体例子说明,用VC的AppWizard创建一个名为"MDITitle"的多文挡类型的工程。创建完工程后,编译运行该工程,主窗口标题形式如下:"主窗口标题-文档标题"。


2.l 文挡标题的改变


MDI类型窗口的文档标题也是由相应的文档类控制的。改变方法同SDI类型窗口类似,要改变标题,只要在相应的文档类中利用SetTitle()函数来改变文档标题。


2.2 主窗口标题的改变


MDI类型主窗口标题的改变方法同SDI类型窗口类似。改变主窗口标题也有两种方法,通过改变IDR_MAINFRAME或m_strTitle的值就可实现改变主窗口标题的目的。同样,改变了m_strTitle值后,IDR_MAINFRAME的值就不起作用。


2.3 子窗口标题的改变


在默认情况下,MFC自动将子窗口标题设为该子窗口所打开的文档标题。但实际上,子窗口标题与该子窗口标题所打开的文档标题可以不一样。可做如下改动:


利用ResourceView打开资源,修改String Table中的IDR_MAINFRAME的值为"上海市卢湾区业余大学",使得主窗口标题变成"上海市卢湾区业余大学"。


并将BOOL CMDlTitleDoc::OnNewDocument()函数改为:


BOOL CMDlTitleDoc::OnNewDocument()


{


if(!CDocument::OnNewDocument())


return FALSE;


static int count=0;


char message[10];


wsprintf(message,"%s%d","文档",count);


SetTitle(message);


count++;


return TRUE;


}


通过以上修改,主窗口标题栏被设置为:文档标题为"上海市卢湾区业余大学-文挡0"、"上海市卢湾区业余大学-文档1 ” ……


一下针对子窗口标题的修改作如下改动:


将CChildFrame::PrecreateWindow()函数改为:


BOOL CChiidFrame::PrecreateWindow(CREATESTRUCT&cs)


cs.style &=~(LONG)FWS_ADDTOTlTLE;


return CMDIChildWnd::PrecreateWindow(cs);


}


要改变窗口类型, 这步工作必须做。常量问FWS_ADDTOTITLE是在文件\msdev\mfc\include\afxwin.h中定义。


在 CMDlTitleView类中增加OnlnitialUpdate()函数:


void CMDlTitleView::OnlnitiaiUpdate()


{


CView::OninitialUpdate();


Getparent()-〉SetWindowText(GetDocument()-)GetTitle()+ ” -上海卢湾区业余大学 ” );


}


这样,子窗口的标题栏的形式就为"文档名-上海卢湾区业余大学"。


参考资料:


[1]Michaei Morrison:Sams Tech Yourself MFC in 24Hours


[2]David krugiinski:Programming Microsoft Visual C++,FiHh Edition


[3]Kate Gregory:Special Edition Using Visual C++5

全部回答

ResHacker(软件修改器)把别人的软件版权变成自己的!

如果是对话框在OnInitDialog SetWindowText(“ddd” ). 如果在文档类: CYApp::InitInstance()的最下边
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
得一文化广场东门地址在什么地方,想过去办事
淘宝虚拟交易退货的期限是多少天?
赞美海边风景的诗词,上传婚纱照写点什么动人
看了娘家的故事有什么感受
野菊米茶饮用后怎么样?
哪个好心人帮我点英雄岛图标!!!!
凸轮机构与连杆机构的不同
合工大的法学能转到理工学科吗?
贵港牡丹妇产医院地址在什么地方,想过去办事
寻找记忆用英语怎么说,春天是温暖的吗?用英
年月把拥有变做失去什么意思
好友留言了,空间设置提醒我好友留了言也打了
QQspeed帮我想宠物名
江西省婺源车站婺源至万年班车几时
描写哀的四字成语
推荐资讯
DNF梵风衣那掉的最多?
女生过生日男生应该送什么礼物好呢?
麻烦大家推荐几首好听的手机铃声
关于失恋的说说 古风
谁有囧囧这首歌的歌曲链接?
兖州哪有自助餐吃?
连州市农村信用合作联社清水分社在什么地方啊
永恒之塔在什么地方刷书啊?
用java开发小型企业网站划算吗?
七号公馆量贩KTV地址在什么地方,想过去办事
学财会实用吗?
小农经济在古代中国封建社会中的地位
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?