应用程序各种标题的改变方法文档格式.docx
《应用程序各种标题的改变方法文档格式.docx》由会员分享,可在线阅读,更多相关《应用程序各种标题的改变方法文档格式.docx(5页珍藏版)》请在冰豆网上搜索。
Communicationsoft的软件。
虽然在Windows95或WindowsNT下,VisualC++(以下简称VC)可以生成以"
Communicationsoft为名的工程,但该工程下的C++类的名称也要带上这么多的字符,
1.1文档标题的改变
既然文档标题是由工程中相应的文档类所控制的,了解这一点,就可在相应的文档类中,利用SetTitle()函数来改变文档标题。
例:
改变CExam9Doc:
:
onNewDocument()函数为:
BOOLCExam9Doc:
OnNewDocument()
{
if(!
CDocument:
OnNewDocument())
returnFALSE-
SetTitle("
文档标题"
);
returnTRUE;
}
运行程序,则每次选择选单中的"
文件"
的"
新建"
选项时,标题就变成"
文档标题-Exam9”
1.2主窗口标题的改变
主窗口的标题默认是工程的文件名,正如前面Appvvazied生成的Exam9工程执行后,标题栏的形式总为"
文档标题-Exam9。
改变主窗口的标题方法有两种:
第一种方法:
利用ResourceView打开工程的资源,修改StringTable中的
IDR_MAINFRAME的值。
将原来的"
Exam9/n/nExam9/nEXMFile(*.exm)/n.exm/nExam9.Document/nExam9Document"
改为"
标题改变示例
/n/nExam9/nEXMFile(*.exm)/n.exm/nExam9.Document/nExam9Document"
。
这样改变后,主窗口标题就变为"
-标题改变示例"
第二种方法:
具体改变方法如下:
改变CMainFrame的成员函数PreCreateWindowO为:
BOOLCMainFrame:
PreCreateWindow(CREATESTRUCT&
cs)
m_strTitle="
上海市卢湾区业余大学”;
returnCFrameWnd:
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打开资源,修改StringTable中的IDR_MAINFRAME的值为"
上海市卢湾区业余大学"
使得主窗口标题变成"
并将BOOLCMDlTitleDoc:
OnNewDocument()函数改为:
BOOLCMDlTitleDoc:
returnFALSE;
staticintcount=0;
charmessage[10];
wsprintf(message,"
%s%d"
"
文档"
count);
SetTitle(message);
count++;
通过以上修改,主窗口标题栏被设置为:
文档标题为"
上海市卢湾区业余大学-文挡0"
、"
上海市卢湾区业余大学-文档1”……
一下针对子窗口标题的修改作如下改动:
将CChildFrame:
PrecreateWindow()函数改为:
BOOLCChiidFrame:
PrecreateWindow(CREATESTRUCT&
cs.style&
=~(LONG)FWS_ADDTOTlTLE;
returnCMDIChildWnd:
PrecreateWindow(cs);
要改变窗口类型,这步工作必须做。
常量问FWS_ADDTOTITLE是在文件/msdev/mfc/include/afxwin.h中定义。
在CMDlTitleView类中增加OnlnitialUpdate()函数:
voidCMDlTitleView:
OnlnitiaiUpdate()
CView:
OninitialUpdate();
Getparent()-〉SetWindowText(GetDocument()-)GetTitle()+”-上海卢湾区业余大学”);
这样,子窗口的标题栏的形式就为"
文档名-上海卢湾区业余大学"
参考资料:
[1]MichaeiMorrison:
SamsTechYourselfMFCin24Hours
[2]Davidkrugiinski:
ProgrammingMicrosoftVisualC++,FiHhEdition
[3]KateGregory:
SpecialEditionUsingVisualC++5