VC中如何将MDI的多个子窗体设置为不同的标题?

解决方案 »

  1.   

    在默认情况下,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() 函数改为: 
    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窗口标题示例”。