我在程序中用
::AfxGetMainWnd()->SetWindowText("管理系统");
改变了主窗口的标题。然后在创建字窗口(我的程序刚运行的时候不显示子窗口)的时候在xxxView.cpp中做了如下变动
void CxxxView::OnDraw(CDC* pDC)
{
CxxxDoc* pDoc = GetDocument();
pDoc->SetTitle("哈哈");//改变子窗口标题
::AfxGetMainWnd()->SetWindowText("管理系统");//防止主窗口标题回到默认状态
ASSERT_VALID(pDoc);
}但是遇到的问题是在关闭所有子窗口的时候主窗口的标题又回到以前默认的状态:即由“管理系统”变成了修改前的名称,请问有办法不让程序标题改变吗?

解决方案 »

  1.   

    我在程序中用
    ::AfxGetMainWnd()->SetWindowText("管理系统");
    改变了主窗口的标题。
    -----------------
    你是在什么地方改的??
    在应用程序的CMainFrame::PreCreateWindow里改试是
      

  2.   

    View 里面不是最佳的 修改地方。 一则 无意义 重复,二则 View外的变更无法估计(如你的关闭View的情况)。建议:
    1. 建议的方式: PreCreateWindow的时候去掉MainFrame的FWS_ADDTOTITLE 风格。 这样子标题就不会随文档更改了。2. OverLoad CDocument::SetTitle() 函数。3. 设立MainFrame 的 WM_SETTEXT消息响应,除了自己设置的外 一律 略过(有点小题大作了*_*)
      

  3.   

    楼上的建议很好。
    随便说一下,每次需要显示标题的时候,将会引起WM_GETTEXT,可以自己处理这个消息。
      

  4.   

    你可以在OnActiveView处理标题变更当然要采取FWS_ADDTOTITLE 风格