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

📄 subject_37491.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:37491 发表者:sundy001 发表日期:2003-04-25 11:26:51
<br>主题:sdi中 无doc/view支持,无模式对话框的问题
<br>内容:我由向导生成的sdi 无doc/view支持,想在点击主菜单后出现无模式对话框,<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>
回复者:最后疯狂 回复日期:2003-04-25 13:37:58
<br>内容:1、利用对话框编辑器创建一个对话框资源,并基于此资源生成一个CDialog的派生类CMyDialog ;<BR><BR>2、为CMyDialog加入一个成员变量:<BR>private:<BR>&nbsp;&nbsp;&nbsp;&nbsp;CView *m_pView ;<BR>再加入两个成员函数:]<BR>public:<BR>&nbsp;&nbsp;&nbsp;&nbsp;CMyDialog(CView *pView) ;<BR>&nbsp;&nbsp;&nbsp;&nbsp;BOOL Create() ;<BR><BR>3、在MyDialog.h中加入一个用户自定义消息:<BR>#define WM_GOODBYE&nbsp;&nbsp;&nbsp;&nbsp;WM_USER + 5<BR><BR>4、在MyDialog.cpp中加入无模式对话框的构造函数和Create()函数的实现:<BR>CMyDialog::CMyDialog(CView *pView)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;m_pView - pView ;<BR>}<BR>还应该在由AppWizard所产生的模式对话框的构造函数中加进如下代码:<BR>m_pView = NULL ;<BR>以便CMyDialog类能适应模式对话框和无模式对话框。<BR><BR>BOOL CMyDialog::Create()<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;return CDialog::Create(CMyDialog::IDD) ;<BR>}<BR><BR>9、覆盖CMyDialog的OnOK()和OnCancel()函数:<BR><BR>void CMyDialog::OnOK()<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;if (m_pView != NULL) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 非模态对话框<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UpdateData(TRUE);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_pView-&gt;PostMessage(WM_GOODBYE, IDOK);<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;else {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDialog::OnOK(); // 模态对话框<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>}<BR><BR>void CEx07aDialog::OnCancel()&nbsp;&nbsp;<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;if (m_pView != NULL) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_pView-&gt;PostMessage(WM_GOODBYE, IDCANCEL);<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;else {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDialog::OnCancel(); <BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>}<BR><BR>10、此时就可以创建并显示非模态对话框了(模态对话框必须在堆中创建,以免超出对话框有效范围时,对话框C++对象被自动析构)。注意被覆盖的OnOK()和OnCancel(),非模态对话框的释放动作是由视图来控制的(因为非模态对话被创建之后Create()就会立即返回)。<BR>2003-4-25 13:43:44

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -