用VS2003进行多文档开发时,新打开的小窗口的标题会拼接在主窗口标题后面。若使软件标题从配置文件读取,不添加进资源中,新建子窗口的时候CreateNewChild调用工程资源,因为没有将软件标题写进资源里,主窗口标题会直接变成子窗口标题,这个问题怎么解决的?

解决方案 »

  1.   

    这个没弄过,建议参考如下文章http://hi.baidu.com/neutblue/blog/item/6fe77723f3ac61a34723e884.html
      

  2.   

    但是从配置文件读取的时候,如果打开子窗口,主窗口标题也会修改。底层文件会从工程资源中读取IDR_MAINFRAME 这个资源ID号下捆绑的字符串、图标、快捷方式等,如果从配置文件读取标题的话,这个时候在这个资源ID号下面就不会得到字符串,导致主窗口标题为空。
      

  3.   

    第二种方法: 具体改变方法如下: 改变CSDIMainFrame的成员函数PreCreateWindow()为: 
    BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) 

    m_strTitle = " 我的标题 "; 
    return CFrameWnd::PreCreateWindow(cs); 
    } 这种有试过吗?不用资源,直接用字符串。
      

  4.   

    这种方法试过 不过我在工程汇中没找到主窗口的PreCreateWindow函数,在自己练习用的小工程中这种方法确实管用,不过在大工程中主窗口创建好像使用其他方法。在子窗口创建中用到了该函数,不过我添加的过程中,提示m_strTitle未声明。
    在MDI工程中,标题、图标、快捷键、工具栏都是绑定在一个资源ID下的,我在想能不能通过读取配置文件,将标题、图标等资源绑定在该ID下呢?