MFC对话框调用domodal返回的问题。

voidCMy_ResView::OnOperString(){//TODO:AddyourcommandhandlercodehereCInputDlgdlgInput... void CMy_ResView::OnOperString()
{
// TODO: Add your command handler code here
CInputDlg dlgInput; // 声明对话框变量
if(dlgInput.DoModal() == IDOK) // 如果用户点击OK按钮
{ m_strShow = dlgInput.m_strInput; // 更改字符串
Invalidate(); // 强制重绘
}
}
————————————————————————————

本段代码通过调用domodal()返回值判断,然后点击ok窗口显示就会修改为输入的字符串。
但是将代码中的IDOK改为IDCANCEL后,点CANCEL却无法实现功能。求高手帮忙!!!
ps:如果这里想用非模态对话框,也就是要怎么使用Create函数
展开
 我来答
百度网友8f74ff6
2014-12-14 · TA获得超过1910个赞
知道大有可为答主
回答量:1533
采纳率:0%
帮助的人:1613万
展开全部
首先看一下点击取消后条件是否成立,如果条件成立进入条件句,原因就应该是点击取消输入的字符串没有执行UpdateData(TRUE);,添加IDCANCEL响应函数,在返回前加上这一句尝试一下。
追问
太感谢了,这个问题解决了。能不能稍微教我一下,怎么用Create创建非模式对话框实现相同的功能?
追答

非模态对话框,假设对话框类为CMyDlg,加头文件代码如下:

CMyDlg *pDlg=new CMyDlg;
pDlg->Create(IDD_DIALOG_); //对话框ID
pDlg->ShowWindow(SW_SHOW);

 对话框类里的代码和以前一样,这一段是显示对话框部分的,以前是dlg.DoModal(),改成这个,定义成指针。调用类的变量pDlg->XXXX

归悦欣cf
2014-12-31 · TA获得超过1444个赞
知道大有可为答主
回答量:4250
采纳率:59%
帮助的人:1325万
展开全部
不是IDOK就是IDCANCEL,这还不好判断吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式