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函数 展开
{
// 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函数 展开
2个回答
展开全部
首先看一下点击取消后条件是否成立,如果条件成立进入条件句,原因就应该是点击取消输入的字符串没有执行UpdateData(TRUE);,添加IDCANCEL响应函数,在返回前加上这一句尝试一下。
追问
太感谢了,这个问题解决了。能不能稍微教我一下,怎么用Create创建非模式对话框实现相同的功能?
追答
非模态对话框,假设对话框类为CMyDlg,加头文件代码如下:
CMyDlg *pDlg=new CMyDlg;
pDlg->Create(IDD_DIALOG_); //对话框ID
pDlg->ShowWindow(SW_SHOW);
对话框类里的代码和以前一样,这一段是显示对话框部分的,以前是dlg.DoModal(),改成这个,定义成指针。调用类的变量pDlg->XXXX
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询