方法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就没问题,为什么?
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就没问题,为什么?
int MessageBox(
HWND hWnd,
LPCTSTR lpText,
LPCTSTR lpCaption,
UINT uType
);
方法1是Create调用前的预处理函数,这时对话框的句柄是空的(0x00000000),调用MessageBox时给入的第一个参数就是这个句柄,所以会崩溃
第二个是窗口建立以后,响应Activate事件时候才最大化!
如果自己动态创建,不进行Activate的话,仅是第二种方法,是不能最大化!
当我用OnOpenDocument打开一幅jpeg图时,本来应该跳出对话框的,但是程序就崩溃了,出现“重试,终止,忽略”的错误窗口,错误中的内容有viewscrl.cpp 134行 错误什么的。