mfc的对话框

kingjames23 2010-03-31 03:30:16
在主窗口上点击OK按钮后,弹出一个子窗口。
子窗口上点击cancel按钮后,在返回主窗口。

请问:子窗口cancel按钮怎么添加语句?
...全文
165 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
kingjames23 2010-03-31
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 qq274840476 的回复:]
void onOK()
{
A dlgA;
dlgA.Domodal();
}
这样就好了
本来会自动有个CDialog::ONOK();
删掉就可以了
[/Quote]

谢谢,原来CDialog::ONOK()是关闭对话框的
jogger007 2010-03-31
  • 打赏
  • 举报
回复
A dlgA;
if (IDCANCLE == dlgA.DoModal)
{
//dosomething...
}
qq274840476 2010-03-31
  • 打赏
  • 举报
回复
void onOK()
{
A dlgA;
dlgA.Domodal();
}
这样就好了
本来会自动有个CDialog::ONOK();
删掉就可以了
kingjames23 2010-03-31
  • 打赏
  • 举报
回复
可能是我说的不清楚。
是这样的:建了一个对话框工程,又加了一个窗口,类假设为A。
在主窗口上有个OK按钮,
点击:{A dlgA;
dlgA.DoModal();}
子窗口就弹出来了。
但点上面的cancel按钮,就全退出了。
我想点过cancel之后,这个子窗口关掉,但主窗口还留着。
tanling_zero 2010-03-31
  • 打赏
  • 举报
回复
MessageBox用法
消息框是个很常用的控件,属性比较多,本文列出了它的一些常用方法,及指出了它的一些应用场合。
1.MessageBox("这是一个最简单的消息框!");
2.MessageBox("这是一个有标题的消息框!","标题");
3.MessageBox("这是一个确定 取消的消息框!","标题", MB_OKCANCEL );
4.MessageBox("这是一个警告的消息框!","标题", MB_ICONEXCLAMATION );
5.MessageBox("这是一个两种属性的消息框!","标题", MB_ICONEXCLAMATION|MB_OKCANCEL );
6.if(MessageBox("一种常用的应用","标题",MB_ICONEXCLAMATION|MB_OKCANCEL)==IDCANCEL)
return;

附其它常用属性

系统默认图标,可在消息框上显示
X错误 MB_ICONHAND, MB_ICONSTOP, and MB_ICONERROR
?询问 MB_ICONQUESTION
!警告 MB_ICONEXCLAMATION and MB_ICONWARNING
i信息 MB_ICONASTERISK and MB_ICONINFORMATION

按钮的形式
MB_OK 默认
MB_OKCANCEL 确定取消
MB_YESNO 是否
MB_YESNOCANCEL 是否取消

返回值
IDCANCEL 取消被选
IDNO 否被选
IDOK 确定被选
IDYES 是被选

补充:
以上消息框的用法是在CWnd的子类中的应用,如果不是,则要MessageBox(NULL,"ddd","ddd",MB_OK); 或MessageBox(hWnd,"ddd","ddd",MB_OK); hWnd为某窗口的句柄,或者直接用AfxMessageBox。
这里所列出的属性只是一些常用属性,在MSDN中还有更多的属性

http://download1.csdn.net/down3/20070525/25125621722.rar




Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1625324

[Quote=引用 1 楼 tanling_zero 的回复:]
if (MessageBox.Show("Content",
"Tips",
MessageBoxButtons.YesNoCancel,MessageBoxIcon.Information)
== DialogResult.Cancel)
{
return;
}
}
[/Quote]
tanling_zero 2010-03-31
  • 打赏
  • 举报
回复
if(MessageBox("Content","Tips",MB_ICONEXCLAMATION|MB_OKCANCEL)==IDCANCEL)
{
MessageBox("","",MB_OK);
}
试试!!
kingjames23 2010-03-31
  • 打赏
  • 举报
回复
应该是标准的,
在resources view里加的。
I_NBFA 2010-03-31
  • 打赏
  • 举报
回复
子窗口也分很多种, 是标准窗口? 模式对象框还是非模式对话框?
这些处理都是不同的.
kingjames23 2010-03-31
  • 打赏
  • 举报
回复
点完cancel按钮之后,只需要一个返回主窗口的控制语句。
不需要判断吧?
I_NBFA 2010-03-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 tanling_zero 的回复:]
if( MessageBox.Show("提示信息","提示框标题","",MessageBoxButtons.OKCancel) == DialogResult.OK)
{
//操作
}
[/Quote]

兄弟是弄C#的吧......
kingjames23 2010-03-31
  • 打赏
  • 举报
回复
我只知道右击按钮后,添加event handler
在相应的函数里添加语句。

void dlgb::OnBnClickedCancel()
{
if (MessageBox.Show("Content",
"Tips",MessageBoxButtons.YesNoCancel,MessageBoxIcon.Information)
== DialogResult.Cancel)
{
return; }

// TODO: Add your control notification handler code here
OnCancel();
}
肯定不行嘛
tanling_zero 2010-03-31
  • 打赏
  • 举报
回复
if( MessageBox.Show("提示信息","提示框标题","",MessageBoxButtons.OKCancel) == DialogResult.OK)
{
//操作
}
kingjames23 2010-03-31
  • 打赏
  • 举报
回复
能不能说详细点?
我是菜鸟
tanling_zero 2010-03-31
  • 打赏
  • 举报
回复
if (MessageBox.Show("Content",
"Tips",
MessageBoxButtons.YesNoCancel,MessageBoxIcon.Information)
== DialogResult.Cancel)
{
return;
}
}

16,467

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧