CDialog::DoModal()的返回值 和 自定义返回值

来源:互联网 发布:java程序员如何赚外快 编辑:程序博客网 时间:2024/05/22 23:28
一般来说模态对话框都是调用 CDialog::EndDialog(int);结束的
模板生成的OnOK();和OnCancel();分别对应EndDialog(IDOK);和EndDialog(IDCANCEL);
以下是一般对话框的结束码定义:
#define IDOK                1 用户单击OK按钮中止对话框的返回值
#define IDCANCEL            2 单击CANCEL按钮中止对话框的返回值
#define IDABORT             3 对话框异常中止时返回值
#define IDRETRY             4 用户单击重试按钮中止对话框的返回值
#define IDIGNORE            5 用户单击忽略按钮中止对话框的返回值
#define IDYES               6
#define IDNO                7
#if(WINVER >= 0x0400)
#define IDCLOSE             8 用户单击关闭(右上角红X)按钮中止对话框的返回值
#define IDHELP              9 用户单击帮助按钮中止对话框的返回值
#endif /* WINVER >= 0x0400 */
</pre><pre id="best-answer-content" class="reply-text mb10" name="code" style="white-space: pre-wrap; word-wrap: break-word; font-size: 14px; line-height: 26px;"><span style="background-color: rgb(255, 255, 255);">你也可以自己定义结束码,为</span><span style="background-color: rgb(255, 204, 204);">int类型</span><span style="background-color: rgb(255, 255, 255);">,然后由调用对话框的函数去判断结果(如下:)</span>
IDC_MY_BTN //对话框上面 自定义按钮的ID
void CMyDlg::OnMyBtn() IDC_MY_BTN 按钮单击响应事件
{
EndDialog(IDC_MY_BTN );<span style="white-space: pre;"></span>//返回值 就是 IDC_MY_BTN了
}
</pre><pre id="best-answer-content" class="reply-text mb10" name="code" style="white-space: pre-wrap; word-wrap: break-word; font-size: 14px; line-height: 26px; background-color: rgb(255, 255, 255);">使用方法:
<pre id="best-answer-content" class="reply-text mb10" name="code" style="white-space: pre-wrap; word-wrap: break-word;">CMyDlg dlg;
<span style="white-space: pre;"></span><pre id="best-answer-content" class="reply-text mb10" name="code" style="white-space: pre-wrap; word-wrap: break-word;">if(dlg.DoModal() == IDC_MY_BTN)
<span style="white-space: pre;"></span>MessageBox("IDC_MY_BTN");
FROM : <a target=_blank href="http://blog.csdn.net/laga516/article/details/7050258">http://blog.csdn.net/laga516/article/details/7050258</a>
                                             
0 0