在默认情况下,MFC自动将子窗口标题设为该子窗口所打开的文档标题。但实际上,子窗口标题与该子窗口标题所打开的文档标题并不是同一回事。我们可做如下实验:
(利用ResourceView打开资源,修改String Table中的IDR_MAINFRAME的值为“vc编程”,使得主窗口标题变成“VC编程”。
(将BOOL CMDITITleDoc::OnNewDocument()函数改为:
BOOL CMDITITleDoc::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”... 。
(r)将CChildFrame ::PreCreateWindow() 函数改为:
//注意,是CChildFrame中的PreCreateWindow()函数,不是View中的
BOOL CChildFrame::PreCreateWindow(CREATESTRUCT& cs)
{
cs.style &=~ (LONG) FWS_ADDTOTITLE;
return CMDIChildWnd::PreCreateWindow(cs);
}
改变窗口类型,这步工作必须做。常量FWS_ADDTOTITLE是在文件\ msdev \ mfc \include \afxwin.h中定义。
(在CMDITitleView类中增加OnInITialUpdate () 函数:
void CMDITitleView::OnInITialUpdate()
{
CView::OnInITialUpdate();
GetParent()->SetWindowText(GetDocument()->GetTiTle()+"-VC窗口标题示例");
}这样,子窗口的标题栏的形式就为“文档名(- VC窗口标题示例”。