⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_31157.htm

📁 vc
💻 HTM
字号:
<p>
序号:31157 发表者:peter 发表日期:2003-03-01 11:27:33
<br>主题:问题:想在主菜单上点一下,创建一个新窗口。
<br>内容:void CMainFrame::OnToolCreate() <BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;CWnd myWnd;<BR>&nbsp;&nbsp;&nbsp;&nbsp;CString myClass;<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;myClass = AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;::LoadCursor(NULL,IDC_ARROW),(HBRUSH)::GetStockObject(GRAY_BRUSH),<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NULL);<BR>&nbsp;&nbsp;&nbsp;&nbsp;BOOL bIsCreate = myWnd.CreateEx(NULL,myClass,"nihao",WS_OVERLAPPEDWINDOW,0,0,400,200,NULL,NULL);<BR>&nbsp;&nbsp;&nbsp;&nbsp;if (!bIsCreate)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AfxMessageBox("Fail");<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;&nbsp;&nbsp;&nbsp;// TODO: Add your specialized code here and/or call the base class<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;CDialog::PostNcDestroy();<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;delete this;// &lt;--- 这一句至关重要<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 + -