1. 程式人生 > >CDialog::DoModal()的返回值 和 自定義返回值

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

一般來說模態對話方塊都是呼叫 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="background-color: rgb(255, 255, 255); white-space: pre-wrap; word-wrap: break-word; font-size: 14px; line-height: 26px;">使用方法:
<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");
</pre><pre id="best-answer-content" class="reply-text mb10" name="code" style="white-space: pre-wrap; word-wrap: break-word;">
FROM : <a target=_blank href="http://blog.csdn.net/laga516/article/details/7050258">http://blog.csdn.net/laga516/article/details/7050258</a>