• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            franksunny的個人技術空間
            獲得人生中的成功需要的專注與堅持不懈多過天才與機會。 ——C.W. Wendte

            ?

            如何去除對話框默認的EnterEsc按鍵響應

            ?

            MFC 從簡化方便入手,為我們創建的對話框,都增加了一個缺省的 Enter Esc 鍵響應,前者響應對話框的 IDOK 按鈕,后者響應 IDCANCEL 按鈕,但是有時我們創建的對話框不需要這個簡便的響應操作,奇怪的是我們在去除 IDOK 按鈕和 IDCANCEL 按鈕后還是實現不了禁止如上兩個缺省按鍵的響應。那么該如何實現呢,以下便是解決過程(以去除 Enter 鍵響應為例):

            首先,利用 ClassWizard 為對話框的 IDOK 添加單擊響應函數,去除該函數中默認的 OnOK 函數響應,如下所示

            void CDialogDemoDlg::OnOK()

            {

            ????? CDialog::OnOK();

            }

            改為

            void CDialogDemoDlg::OnOK()

            {

            ????? //CDialog::OnOK();

            }

            注:進行如上這步后,顯然你不論再怎么按 Enter 鍵都無法使對話框退出了,但是也導致該對話框就算用戶用鼠標點擊 IDOK 按鈕也無法實現對話框默認的 OnOK 函數了。所以這一步只是解決了一個現象問題,本沒有真正解決問題。下面我們要恢復這個按鈕的功能。

            ?

            其次,去除缺省按鈕。在資源視圖下,將 IDOK 按鈕屬性欄中的 Default button 屬性勾去。使得默認 Enter 鍵不再繼續響應該按鈕。

            ?

            第三,恢復 OnOk 函數的功能。首先在資源視圖中,將 IDOK 按鈕的 ID 改變為 IDC_OK( 這里用戶根據需要可以自己設置資源的 ID) ;其次為其添加單擊響應函數,并在需要執行結束的代碼后添加 CDialog::OnOK() 函數,如下所示:

            void CDialogDemoDlg::OnOk()

            {

            ????? ......// 省其它處理代碼

            ????? CDialog::OnOK();

            }

            ?

            如上所述過程后,整個 Enter 鍵默認響應已經去除,而且也不會影響對話框正常響應 OnOK 函數的功能,在如上對話框處理后,如果 IDC_OK 按鈕的 TabOrder 屬性為 1 的話,按 Enter 鍵就相當于鼠標單擊 IDC_OK, 所以用戶必須在“ Layout ”的“ Tab Order ”下面重新布置 IDC_OK 按鈕的 TabOrder 順序。

            也許細心的讀者會發現,有時當不用進行第三步操作時,直接將第一步 OnOK() 函數中注釋的 CDialog::OnOK() 代碼重新啟用,也是可以“完成”去除 Enter 鍵默認響應的特性,何必要進行第三步這么復雜的操作,其實不進行第三步操作,并非真正實現了去除 Enter 鍵響應,比如對話框上有一個 Edit 控件時,在編輯 Edit 結束后,用戶按下 Enter 鍵,程序就又馬上去響應 OnOK 函數了。

            好了,去除對話框 Enter 鍵缺省響應的過程就介紹到這里,讀者可以試著去去除 Esc 鍵的響應。

            (注,該方法本人也是書上得來,僅做個人總結)

            ?
            posted on 2006-09-19 06:49 frank.sunny 閱讀(2412) 評論(1)  編輯 收藏 引用 所屬分類: MFC相關技術

            FeedBack:
            # re: 如何去除對話框默認的Enter和Esc按鍵響應
            2010-08-10 15:51 | joke
            謙虛使人進步!
            博主寫的蠻實用的  回復  更多評論
              

            常用鏈接

            留言簿(13)

            隨筆分類

            個人其它博客

            基礎知識鏈接

            最新評論

            閱讀排行榜

            評論排行榜

            青草国产精品久久久久久| 国产一区二区三精品久久久无广告| 最新久久免费视频| 人人狠狠综合久久88成人| 久久精品麻豆日日躁夜夜躁| 99久久成人18免费网站| 亚洲精品综合久久| 97精品久久天干天天天按摩| 亚洲国产成人久久笫一页| 久久99热只有频精品8| 久久亚洲欧洲国产综合| 国内精品人妻无码久久久影院| 久久精品国产亚洲av瑜伽| 亚洲精品无码久久久影院相关影片 | 久久人妻少妇嫩草AV无码专区| 久久久精品午夜免费不卡| 亚洲午夜久久久| 99久久99久久精品国产片| 日韩精品久久久肉伦网站 | 国产成人精品久久| 狠狠色综合网站久久久久久久高清| 久久综合九色综合97_久久久| 久久午夜无码鲁丝片秋霞| 国产精品美女久久久久av爽| 久久男人Av资源网站无码软件| 久久亚洲国产最新网站| 久久精品国产99久久久香蕉| 国产日产久久高清欧美一区| 亚洲中文久久精品无码| 日本WV一本一道久久香蕉| 欧美国产成人久久精品| 久久国产成人午夜aⅴ影院| www.久久热| 国产成人久久精品一区二区三区 | 婷婷综合久久中文字幕蜜桃三电影| 国产午夜精品久久久久九九| 久久99毛片免费观看不卡 | 69SEX久久精品国产麻豆| 伊人久久大香线蕉亚洲| 伊人久久大香线蕉综合5g| 久久久久综合中文字幕|