方法1:在BOOL CChildFrame::PreCreateWindow(CREATESTRUCT& cs)中添加
    cs.style = WS_CHILD | WS_VISIBLE | WS_OVERLAPPED | WS_CAPTION
       | WS_SYSMENU | FWS_ADDTOTITLE | WS_THICKFRAME
   | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_MAXIMIZE;
    return CMDIChildWnd::PreCreateWindow(cs) ;方法2:在void CChildFrame::ActivateFrame(int nCmdShow) 中添加
    nCmdShow = SW_SHOWMAXIMIZED;  //设置子窗口打开时为最大化但是如果在BOOL CMy002Doc::OnOpenDocument(LPCTSTR lpszPathName)中添加MessageBox之类的跳出提示信息框,用方法1则程序就会崩溃,用方法2就没问题,为什么?

解决方案 »

  1.   


    int MessageBox(          
        HWND hWnd,
        LPCTSTR lpText,
        LPCTSTR lpCaption,
        UINT uType
    );
    方法1是Create调用前的预处理函数,这时对话框的句柄是空的(0x00000000),调用MessageBox时给入的第一个参数就是这个句柄,所以会崩溃
      

  2.   

    我刚学MFC,好多基础的东西都不是很懂,求助高手!
      

  3.   

    第一个在窗口建立的时候,直接就最大化了!
    第二个是窗口建立以后,响应Activate事件时候才最大化!
    如果自己动态创建,不进行Activate的话,仅是第二种方法,是不能最大化!
      

  4.   

    结帖率:0.00% ,Doc没有Messagebox这个成员函数吧,用的AfxMessagebox?
      

  5.   

    我的程序就是打开一幅位图,但是若打开不支持的格式,我就想用MessageBox(或AfxMessageBox)跳出一个对话框说“该格式目前不支持”,(视图带滚动条)。
    当我用OnOpenDocument打开一幅jpeg图时,本来应该跳出对话框的,但是程序就崩溃了,出现“重试,终止,忽略”的错误窗口,错误中的内容有viewscrl.cpp 134行 错误什么的。