MFC 模态对话框dlg.DoModal()返回值(转)

查了很多资料,都说DoModal()返回值为OK或CANCEL键的ID

 

  其实,这种说法是错误的

 

  MSDN是这样说明其返回值的

 

        If successful, the value of the nRetCode parameter specified in the call to EndDialog; otherwise, -1.

 

        如果操作成功,其返回值为由EndDialog指定的nRetCode的值,而此参数nRetCode的含义为关闭对话框所采用的方式

  

     也就是说,在关闭此模态对话框时,其返回值为关闭对话框时所采用的方式

     因此它只在对话框关闭时才返回相关参数值

 

     默认对话框关闭方式有2种:OnOK();    OnCancel()

 

     当使用OnOK()函数关闭对话框时,返回值为IDOK

 

     当使用OnCancel()函数关闭对话框时,返回值为IDCANCEL

 

     返回值与ID无关 

 

     比如一个按钮的ID为IDC_BUTTON1

     在此按钮的处理函数中添加关闭对话框方式: OnOk()

     则 点击此按钮时,对话框返回值为IDOK

 

 

除此两种默认关闭方式外,还可用EndDialog(int nRetCode)设定自定义的关闭方式

 

如下例子:

 

  1. void EndDialog(  
  2.    int nResult   
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值