📄 改变vc++应用程序窗口的标题.htm
字号:
lang=EN-US>:<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="mso-pagination: widow-orphan"><SPAN
style="FONT-SIZE: 10.5pt">第一种方法<SPAN lang=EN-US>:利用ResourceView打开工程的资源,修改String
Table中的<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="mso-pagination: widow-orphan"><SPAN lang=EN-US
style="FONT-SIZE: 10.5pt">IDR_MAINFRAME的值。将原来的"Exam9\n\nExam9\nEXMFile(*.exm)\n.exm\nExam9.Document\nExam9
Document"改为"标题改变示例<o:p></o:p></SPAN></P>
<P class=MsoNormal style="mso-pagination: widow-orphan"><SPAN lang=EN-US
style="FONT-SIZE: 10.5pt">\n\nExam9\nEXM
File(*.exm)\n.exm\nExam9.Document\nExam9
Document"。这样改变后,主窗口标题就变为"-标题改变示例"。第二种方法:具体改变方法如下:<o:p></o:p></SPAN></P>
<P class=MsoNormal style="mso-pagination: widow-orphan"><SPAN
style="FONT-SIZE: 10.5pt">改变<SPAN lang=EN-US>
CMainFrame的成员函数PreCreateWindowO为:<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal
style="MARGIN-TOP: 1.4pt; TEXT-INDENT: 21pt; mso-pagination: widow-orphan; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US style="FONT-SIZE: 10.5pt">BOOL
CMainFrame::PreCreateWindow(CREATESTRUCT&cs)<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="MARGIN-TOP: 1.4pt; TEXT-INDENT: 21pt; mso-pagination: widow-orphan; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US style="FONT-SIZE: 10.5pt">{<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="MARGIN-TOP: 1.4pt; TEXT-INDENT: 21pt; mso-pagination: widow-orphan; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US style="FONT-SIZE: 10.5pt">m_strTitle="上海市卢湾区业余大学</SPAN><SPAN
lang=EN-US
style="FONT-FAMILY: 'Times New Roman'; FONT-SIZE: 10.5pt; mso-ascii-font-family: 宋体">”</SPAN><SPAN
lang=EN-US style="FONT-SIZE: 10.5pt">;<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="MARGIN-TOP: 2.15pt; TEXT-INDENT: 21pt; mso-pagination: widow-orphan; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US style="FONT-SIZE: 10.5pt">return
CFrameWnd::PreCreateWindow(cs);<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="MARGIN-TOP: 2.15pt; TEXT-INDENT: 21pt; mso-pagination: widow-orphan; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US style="FONT-SIZE: 10.5pt">}<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="MARGIN-TOP: 2.15pt; TEXT-INDENT: 21pt; mso-pagination: widow-orphan; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><SPAN
style="FONT-SIZE: 10.5pt">这样改变后<SPAN
lang=EN-US>,主窗口标题的形式就为"-上海市卢湾区业余大学"。<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal
style="MARGIN-TOP: 0.7pt; TEXT-INDENT: 21pt; mso-pagination: widow-orphan; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt">M_strTile是CFrameWnd的保护成员(要得到m_strTile更详细的信息,请打开\msdev\mfc\include\afxwin.h文件)。CMainFrame则是CFrameWnd类的派生类。<o:p></o:p></SPAN></P>
<P class=MsoNormal style="mso-pagination: widow-orphan"><SPAN
style="FONT-SIZE: 10.5pt">在这两种改变方法中<SPAN
lang=EN-US>,第二种方法优先级高。也就是说,改变了m_strTitle的值后,IDR_MAlNFRAME的值就不起作用。<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal
style="MARGIN-TOP: 3.35pt; mso-pagination: widow-orphan"><B><SPAN lang=EN-US
style="FONT-SIZE: 10.5pt">2 对多文挡接口(MDI)类型窗口标题的改变<o:p></o:p></SPAN></B></P>
<P class=MsoNormal
style="TEXT-INDENT: 21pt; mso-pagination: widow-orphan; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><SPAN
style="FONT-SIZE: 10.5pt">在<SPAN
lang=EN-US>MDI类型窗口中,主窗口标题和文档标题的次序,和SDl类型窗口中次序是不同的。结合具体例子说明,用VC的AppWizard创建一个名为"MDITitle"的多文挡类型的工程。创建完工程后,编译运行该工程,主窗口标题形式如下:"主窗口标题-文档标题"。<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="mso-pagination: widow-orphan"><B><SPAN lang=EN-US
style="FONT-SIZE: 10.5pt">2.l 文挡标题的改变<o:p></o:p></SPAN></B></P>
<P class=MsoNormal
style="TEXT-INDENT: 21pt; mso-pagination: widow-orphan; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt">MDI类型窗口的文档标题也是由相应的文档类控制的。改变方法同SDI类型窗口类似,要改变标题,只要在相应的文档类中利用SetTitle()函数来改变文档标题。<o:p></o:p></SPAN></P>
<P class=MsoNormal style="mso-pagination: widow-orphan"><B><SPAN lang=EN-US
style="FONT-SIZE: 10.5pt">2.2 主窗口标题的改变<o:p></o:p></SPAN></B></P>
<P class=MsoNormal
style="TEXT-INDENT: 21pt; mso-pagination: widow-orphan; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt">MDI类型主窗口标题的改变方法同SDI类型窗口类似。改变主窗口标题也有两种方法,通过改变IDR_MAINFRAME或m_strTitle的值就可实现改变主窗口标题的目的。同样,改变了m_strTitle值后,IDR_MAINFRAME的值就不起作用。<o:p></o:p></SPAN></P>
<P class=MsoNormal style="mso-pagination: widow-orphan"><B><SPAN lang=EN-US
style="FONT-SIZE: 10.5pt">2.3 子窗口标题的改变<o:p></o:p></SPAN></B></P>
<P class=MsoNormal
style="TEXT-INDENT: 21pt; mso-pagination: widow-orphan; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><SPAN
style="FONT-SIZE: 10.5pt">在默认情况下<SPAN
lang=EN-US>,MFC自动将子窗口标题设为该子窗口所打开的文档标题。但实际上,子窗口标题与该子窗口标题所打开的文档标题可以不一样。可做如下改动:<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal
style="TEXT-INDENT: 21pt; mso-pagination: widow-orphan; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><SPAN
style="FONT-SIZE: 10.5pt">利用<SPAN lang=EN-US>ResourceView打开资源,修改String
Table中的IDR_MAINFRAME的值为"上海市卢湾区业余大学",使得主窗口标题变成"上海市卢湾区业余大学"。<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal
style="TEXT-INDENT: 21pt; mso-pagination: widow-orphan; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><SPAN
style="FONT-SIZE: 10.5pt">并将<SPAN lang=EN-US>BOOL
CMDlTitleDoc::OnNewDocument()函数改为:<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="mso-pagination: widow-orphan"><SPAN lang=EN-US
style="FONT-SIZE: 10.5pt">BOOL
CMDlTitleDoc::OnNewDocument()<o:p></o:p></SPAN></P>
<P class=MsoNormal style="mso-pagination: widow-orphan"><SPAN lang=EN-US
style="FONT-SIZE: 10.5pt">{<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="TEXT-INDENT: 21pt; mso-pagination: widow-orphan; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt">if(!CDocument::OnNewDocument())<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="TEXT-INDENT: 42pt; mso-pagination: widow-orphan; mso-char-indent-count: 4.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US style="FONT-SIZE: 10.5pt">return FALSE;<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="TEXT-INDENT: 21pt; mso-pagination: widow-orphan; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US style="FONT-SIZE: 10.5pt">static int count=0;<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="MARGIN-TOP: 1.9pt; TEXT-INDENT: 21pt; mso-pagination: widow-orphan; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US style="FONT-SIZE: 10.5pt">char message[10];<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="MARGIN-TOP: 1.2pt; TEXT-INDENT: 21pt; mso-pagination: widow-orphan; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt">wsprintf(message,"%s%d","文档",count);<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="MARGIN-TOP: 1.2pt; TEXT-INDENT: 21pt; mso-pagination: widow-orphan; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US style="FONT-SIZE: 10.5pt">SetTitle(message);<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="MARGIN-TOP: 1.2pt; TEXT-INDENT: 21pt; mso-pagination: widow-orphan; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US style="FONT-SIZE: 10.5pt">count++;<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="MARGIN-TOP: 2.4pt; TEXT-INDENT: 21pt; mso-pagination: widow-orphan; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US style="FONT-SIZE: 10.5pt">return TRUE;<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="MARGIN-TOP: 2.4pt; TEXT-INDENT: 21pt; mso-pagination: widow-orphan; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US style="FONT-SIZE: 10.5pt">}<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="MARGIN-TOP: 2.4pt; TEXT-INDENT: 21pt; mso-pagination: widow-orphan; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><SPAN
style="FONT-SIZE: 10.5pt">通过以上修改<SPAN
lang=EN-US>,主窗口标题栏被设置为:文档标题为"上海市卢湾区业余大学-文挡0"、"上海市卢湾区业余大学-文档1</SPAN></SPAN><SPAN
lang=EN-US
style="FONT-FAMILY: 'Times New Roman'; FONT-SIZE: 10.5pt; mso-ascii-font-family: 宋体">”</SPAN><SPAN
style="FONT-SIZE: 10.5pt">……<B><SPAN
lang=EN-US><o:p></o:p></SPAN></B></SPAN></P>
<P class=MsoNormal
style="MARGIN-TOP: 4.55pt; TEXT-INDENT: 21pt; mso-pagination: widow-orphan; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><SPAN
style="FONT-SIZE: 10.5pt">一下针对子窗口标题的修改作如下改动<SPAN
lang=EN-US>:<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal
style="TEXT-INDENT: 21pt; mso-pagination: widow-orphan; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><SPAN
style="FONT-SIZE: 10.5pt">将<SPAN
lang=EN-US>CChildFrame::PrecreateWindow()函数改为:<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN-TOP: 2.4pt; mso-pagination: widow-orphan"><SPAN
lang=EN-US style="FONT-SIZE: 10.5pt">BOOL
CChiidFrame::PrecreateWindow(CREATESTRUCT&cs)<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="MARGIN-TOP: 2.4pt; TEXT-INDENT: 21pt; mso-pagination: widow-orphan; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US style="FONT-SIZE: 10.5pt">cs.style
&=~(LONG)FWS_ADDTOTlTLE;<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="MARGIN-TOP: 2.15pt; TEXT-INDENT: 21pt; mso-pagination: widow-orphan; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US style="FONT-SIZE: 10.5pt">return
CMDIChildWnd::PrecreateWindow(cs);<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="MARGIN-TOP: 2.15pt; TEXT-INDENT: 21pt; mso-pagination: widow-orphan; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US style="FONT-SIZE: 10.5pt">}<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="MARGIN-TOP: 2.15pt; TEXT-INDENT: 21pt; mso-pagination: widow-orphan; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><SPAN
style="FONT-SIZE: 10.5pt">要改变窗口类型<SPAN lang=EN-US>,
这步工作必须做。常量问FWS_ADDTOTITLE是在文件\msdev\mfc\include\afxwin.h中定义。<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN-TOP: 2.6pt; mso-pagination: widow-orphan"><SPAN
style="FONT-SIZE: 10.5pt">在<SPAN lang=EN-US>
CMDlTitleView类中增加OnlnitialUpdate()函数:<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN-TOP: 2.6pt; mso-pagination: widow-orphan"><SPAN
lang=EN-US style="FONT-SIZE: 10.5pt">void
CMDlTitleView::OnlnitiaiUpdate()<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN-TOP: 2.6pt; mso-pagination: widow-orphan"><SPAN
lang=EN-US style="FONT-SIZE: 10.5pt">{<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="MARGIN-TOP: 2.6pt; TEXT-INDENT: 21pt; mso-pagination: widow-orphan; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt">CView::OninitialUpdate();<o:p></o:p></SPAN></P>
<P class=MsoNormal
style="TEXT-INDENT: 21pt; mso-pagination: widow-orphan; mso-char-indent-count: 2.0; mso-char-indent-size: 10.5pt"><SPAN
lang=EN-US
style="FONT-SIZE: 10.5pt">Getparent()-〉SetWindowText(GetDocument()-)GetTitle()+</SPAN><SPAN
lang=EN-US
style="FONT-FAMILY: 'Times New Roman'; FONT-SIZE: 10.5pt; mso-ascii-font-family: 宋体">”</SPAN><SPAN
lang=EN-US style="FONT-SIZE: 10.5pt">-上海卢湾区业余大学</SPAN><SPAN lang=EN-US
style="FONT-FAMILY: 'Times New Roman'; FONT-SIZE: 10.5pt; mso-ascii-font-family: 宋体">”</SPAN><SPAN
lang=EN-US style="FONT-SIZE: 10.5pt">);<o:p></o:p></SPAN></P>
<P class=MsoNormal style="mso-pagination: widow-orphan"><SPAN lang=EN-US
style="FONT-SIZE: 10.5pt">}<o:p></o:p></SPAN></P>
<P class=MsoNormal style="mso-pagination: widow-orphan"><SPAN
style="FONT-SIZE: 10.5pt">这样<SPAN
lang=EN-US>,子窗口的标题栏的形式就为"文档名-上海卢湾区业余大学"。<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal
style="MARGIN-TOP: 14.6pt; mso-pagination: widow-orphan"><SPAN
style="FONT-SIZE: 10.5pt">参考资料<SPAN lang=EN-US>:<o:p></o:p></SPAN></SPAN></P>
<P class=MsoNormal style="MARGIN-TOP: 2.4pt; mso-pagination: widow-orphan"><SPAN
lang=EN-US style="FONT-SIZE: 10.5pt">[1]Michaei Morrison:Sams Tech Yourself MFC
in 24Hours<o:p></o:p></SPAN></P>
<P class=MsoNormal style="mso-pagination: widow-orphan"><SPAN lang=EN-US
style="FONT-SIZE: 10.5pt">[2]David krugiinski:Programming Microsoft Visual
C++,FiHh Edition<o:p></o:p></SPAN></P>
<P class=MsoNormal style="mso-pagination: widow-orphan"><SPAN lang=EN-US
style="FONT-SIZE: 10.5pt">[3]Kate Gregory:Special Edition Using Visual
C++5<o:p></o:p></SPAN></P></DIV></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -