您好,登錄后才能下訂單哦!
小編給大家分享一下如何使用oncancel,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
OnCancel,是一種計算機術語,用于窗體的調用。
OnCancel詞條簡介
CDialog::OnCancel
virtualvoidOnCancel();
說明:
當用戶在模態對話框或非模態對話框內單擊Cancel按鈕或按ESC鍵時,窗體調用這個成員函數。
覆蓋該成員函數,執行Cancel按鈕動作,缺省方式是調用EndDialog來簡單中止模態對話框,并使DoModal返回IDCANCEL。
如果在非模態對話框中實現Cancel按鈕,必須覆蓋OnCancel成員函數,并在其中調用DestoryWindow。不能調用基類成員函數,那將會調用EndDialog,使對話框雖然存在但不可視。
OnOK()與OnCancel()異同
首先OnOK是對ID_OK的響應,OnCancel是對IDCANCEL的響應. 前者對應鍵盤的Enter, 后者對應Esc.
MFC:
1、CalledwhentheuserclickstheOKbutton(thebuttonwithanIDofIDOK).
2、TheframeworkcallsthismemberfunctionwhentheuserclickstheCancelbuttonorpressestheESCkeyinamodalormodelessdialogbox.
兩個函數都是CDialog類的virtual的成員函數, 也就是MFC是希望你去重載它們. 兩個函數有一個共同點,就是都會調用CDialog::EndDialog.這個CDialog::EndDialog函數是在CDialog::OnOK();中調用的。EndDialog的作用如下,摘自MSDN:
Callthismethodtodestroyamodaldialogbox
Donotcall EndDialog todestroyamodelessdialogbox.CallCWindow::DestroyWindowinstead
模態對話框可以用EndDialog來銷毀,非模態對話框要用DestroyWindow來銷毀. 以下摘自MSDN: Ifyouimplementthe OK buttoninamodelessdialogbox,youmustoverridethe OnOK methodandcallDestroyWindowinsideit.Donotcallthebase-classmethod,becauseitcallsEndDialogwhichmakesthedialogboxinvisiblebutdoesnotdestroyit.
以上是“如何使用oncancel”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。