MFC中,基于对话框中,默认的“确定”和“取消”两个按键的具体功能是什么?

xiaojie10090 2012-04-13 10:51:16
菜鸟,比较好奇,想了解一下
...全文
1642 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
dwei653124379 2012-04-24
  • 打赏
  • 举报
回复
感谢阿 学习了哈
xiaojie10090 2012-04-16
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]

IDOK是宏
[/Quote]

我该上网查一下宏是什么了,呵呵
xiaojie10090 2012-04-16
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]

我好想明白点了,是不是点击确定之后,执行CDialog::OnOK();,然后这个函数返回一个IDOK,但是IDOK是什么类型的变量呢?如何利用呢?它除了返回这个IDOK之外,还把对话框关闭了啊?我老觉得不简单啊。。。
===========
其实这两个一个调用CDialog::OnOK();,一个调用CDialog::OnCancel();而这两个函数的作法都是关闭对话框,前者返回IDOK……
[/Quote]

非常感谢!
xiaojie10090 2012-04-16
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]

CDialog::OnOK(),CDialog::OnCancel()的作用是关闭对话框,然后返回一个IDOK或IDCANCEL,
他们的作用是给你判断用户到底是点了哪个按钮。IDOK很简单,一个常量而已,它的定义在WINUSER.H中:
#define IDOK 1

PS:你如果是建立基于对话框的程序的话,点这个按钮就退出程序了,一般也就没用了
[/Quote]

非常感谢!对我有用。
PS:基于对话框的,我发现如果仅仅只有一个对话框,会退出程序,如果有多个对话框,只会退出当前对话框
PS:“他们的作用是给你判断用户到底是点了哪个按钮”,这个就算没返回值,也不会判断错误吧,点了确定的话不可能跳到取消的程序去吧。。。
qcmr 2012-04-14
  • 打赏
  • 举报
回复
IDOK,IDCANCLE是宏吧!
表示int型数据,
在MFC中表示一种返回值吧,应该也是一消息!
vcf_reader 2012-04-14
  • 打赏
  • 举报
回复
都是关闭。返回值不同
Eleven 2012-04-13
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

引用 5 楼 的回复:

简单点
在DoModal调用结束后
通过确定按钮返回IDOK
通过取消按钮返回IDCANCEL


你这一说我更糊涂了,那这两个键除了点击之后发现对话框关闭了之外,还有什么作用啊,能否利用CDialog::OnOK();和CDialog::OnCancel();这两个函数呢
[/Quote]
可以自己添加BN_CLICKED事件响应
wltg2001 2012-04-13
  • 打赏
  • 举报
回复
我好想明白点了,是不是点击确定之后,执行CDialog::OnOK();,然后这个函数返回一个IDOK,但是IDOK是什么类型的变量呢?如何利用呢?它除了返回这个IDOK之外,还把对话框关闭了啊?我老觉得不简单啊。。。
===========
其实这两个一个调用CDialog::OnOK();,一个调用CDialog::OnCancel();而这两个函数的作法都是关闭对话框,前者返回IDOK,后者返回IDCANCEL,而IDOK和IDCANCEL只是两个常数,一般约定前者表示确认,后面表示中止,至于如何处理这两个返回值是你自己编程处理的。
xiaojie10090 2012-04-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

没重载就是 EndDialog
[/Quote]

CDialog::OnOK();和CDialog::OnCancel();是一样的吗,都是EndDialog?还有EndDialog是不是和对话框的关闭按钮功能一样?
nyb 2012-04-13
  • 打赏
  • 举报
回复
没重载就是 EndDialog
向立天 2012-04-13
  • 打赏
  • 举报
回复
IDOK是宏
verywzm 2012-04-13
  • 打赏
  • 举报
回复
CDialog::OnOK(),CDialog::OnCancel()的作用是关闭对话框,然后返回一个IDOK或IDCANCEL,
他们的作用是给你判断用户到底是点了哪个按钮。IDOK很简单,一个常量而已,它的定义在WINUSER.H中:
#define IDOK 1

PS:你如果是建立基于对话框的程序的话,点这个按钮就退出程序了,一般也就没用了
xiaojie10090 2012-04-13
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

引用 6 楼 的回复:

引用 5 楼 的回复:

简单点
在DoModal调用结束后
通过确定按钮返回IDOK
通过取消按钮返回IDCANCEL


你这一说我更糊涂了,那这两个键除了点击之后发现对话框关闭了之外,还有什么作用啊,能否利用CDialog::OnOK();和CDialog::OnCancel();这两个函数呢

作用就是返回值啊
这两个按钮的默认处理……
[/Quote]

我好想明白点了,是不是点击确定之后,执行CDialog::OnOK();,然后这个函数返回一个IDOK,但是IDOK是什么类型的变量呢?如何利用呢?它除了返回这个IDOK之外,还把对话框关闭了啊?我老觉得不简单啊。。。
向立天 2012-04-13
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

引用 5 楼 的回复:

简单点
在DoModal调用结束后
通过确定按钮返回IDOK
通过取消按钮返回IDCANCEL


你这一说我更糊涂了,那这两个键除了点击之后发现对话框关闭了之外,还有什么作用啊,能否利用CDialog::OnOK();和CDialog::OnCancel();这两个函数呢
[/Quote]
作用就是返回值啊
这两个按钮的默认处理函数就是CDialog::OnOK();和CDialog::OnCancel();啊
xiaojie10090 2012-04-13
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

简单点
在DoModal调用结束后
通过确定按钮返回IDOK
通过取消按钮返回IDCANCEL
[/Quote]

你这一说我更糊涂了,那这两个键除了点击之后发现对话框关闭了之外,还有什么作用啊,能否利用CDialog::OnOK();和CDialog::OnCancel();这两个函数呢
向立天 2012-04-13
  • 打赏
  • 举报
回复
简单点
在DoModal调用结束后
通过确定按钮返回IDOK
通过取消按钮返回IDCANCEL
xiaojie10090 2012-04-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

引用 2 楼 的回复:
引用 1 楼 的回复:

没重载就是 EndDialog


CDialog::OnOK();和CDialog::OnCancel();是一样的吗,都是EndDialog?还有EndDialog是不是和对话框的关闭按钮功能一样?


我发现关闭按钮也是要调用OnCancel,如果有定义的话
[/Quote]


我不大明白。。。
zhxingway 2012-04-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
引用 1 楼 的回复:

没重载就是 EndDialog


CDialog::OnOK();和CDialog::OnCancel();是一样的吗,都是EndDialog?还有EndDialog是不是和对话框的关闭按钮功能一样?
[/Quote]

我发现关闭按钮也是要调用OnCancel,如果有定义的话

15,976

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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