📄 subject_31157.htm
字号:
<p>
序号:31157 发表者:peter 发表日期:2003-03-01 11:27:33
<br>主题:问题:想在主菜单上点一下,创建一个新窗口。
<br>内容:void CMainFrame::OnToolCreate() <BR>{<BR> CWnd myWnd;<BR> CString myClass;<BR> <BR> myClass = AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW,<BR> ::LoadCursor(NULL,IDC_ARROW),(HBRUSH)::GetStockObject(GRAY_BRUSH),<BR> NULL);<BR> BOOL bIsCreate = myWnd.CreateEx(NULL,myClass,"nihao",WS_OVERLAPPEDWINDOW,0,0,400,200,NULL,NULL);<BR> if (!bIsCreate)<BR> {<BR> AfxMessageBox("Fail");<BR> }<BR> myWnd.ShowWindow(TRUE);<BR>}<BR><BR>为什么运行时窗口一闪而过,谢谢!
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:rancle 回复日期:2003-03-01 13:03:05
<br>内容:呵呵,你定义的这个窗口对象是局部的对象,当你的函数执行完之后,它就自己析构,不存在了,所以会出现一运行就不见的现象,你可以定义为指针的形式,用new来构造,记得一定要对它进行delete操作,否则存在内存泄漏!!!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:詩堂 回复日期:2003-03-07 13:55:23
<br>内容:請問在何處delete!<BR>thanks!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:jimware 回复日期:2003-03-08 17:02:55
<br>内容:可以在父窗口DestroyWindow的时候或者PostNcDestroy的时候,delete 掉动态生成的这个窗口对象。<BR><BR>例如,一个无模式对话框,它的PostNcDestroy() 消息处理类似这样:<BR>void CMyDialog::PostNcDestroy() <BR>{<BR> // TODO: Add your specialized code here and/or call the base class<BR> <BR> CDialog::PostNcDestroy();<BR><BR> delete this;// <--- 这一句至关重要<BR>}
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:无情阁东雪 回复日期:2003-03-08 19:54:29
<br>内容:呵呵,来晚了,不过还好,3楼的朋友已经说了!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:iwill 回复日期:2003-03-09 15:08:20
<br>内容:从CFrameWnd派生就没有这么复杂了...
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:詩堂 回复日期:2003-03-10 09:45:02
<br>内容:我也是在CFrameWnd派生的,但在CMainFrame::~CMainframe()中一用delete就會出錯。<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:iwill 回复日期:2003-03-10 12:58:34
<br>内容:CFrameWnd已经重载PostNcDestroy,加入了delete this;这句,就不用再手工delete了,你可以跟踪一下看看
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -