• <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的個(gè)人技術(shù)空間
            獲得人生中的成功需要的專(zhuān)注與堅(jiān)持不懈多過(guò)天才與機(jī)會(huì)。 ——C.W. Wendte

            ?

            如何去除對(duì)話框默認(rèn)的EnterEsc按鍵響應(yīng)

            ?

            MFC 從簡(jiǎn)化方便入手,為我們創(chuàng)建的對(duì)話框,都增加了一個(gè)缺省的 Enter Esc 鍵響應(yīng),前者響應(yīng)對(duì)話框的 IDOK 按鈕,后者響應(yīng) IDCANCEL 按鈕,但是有時(shí)我們創(chuàng)建的對(duì)話框不需要這個(gè)簡(jiǎn)便的響應(yīng)操作,奇怪的是我們?cè)谌コ?/span> IDOK 按鈕和 IDCANCEL 按鈕后還是實(shí)現(xiàn)不了禁止如上兩個(gè)缺省按鍵的響應(yīng)。那么該如何實(shí)現(xiàn)呢,以下便是解決過(guò)程(以去除 Enter 鍵響應(yīng)為例):

            首先,利用 ClassWizard 為對(duì)話框的 IDOK 添加單擊響應(yīng)函數(shù),去除該函數(shù)中默認(rèn)的 OnOK 函數(shù)響應(yīng),如下所示

            void CDialogDemoDlg::OnOK()

            {

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

            }

            改為

            void CDialogDemoDlg::OnOK()

            {

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

            }

            注:進(jìn)行如上這步后,顯然你不論再怎么按 Enter 鍵都無(wú)法使對(duì)話框退出了,但是也導(dǎo)致該對(duì)話框就算用戶用鼠標(biāo)點(diǎn)擊 IDOK 按鈕也無(wú)法實(shí)現(xiàn)對(duì)話框默認(rèn)的 OnOK 函數(shù)了。所以這一步只是解決了一個(gè)現(xiàn)象問(wèn)題,本沒(méi)有真正解決問(wèn)題。下面我們要恢復(fù)這個(gè)按鈕的功能。

            ?

            其次,去除缺省按鈕。在資源視圖下,將 IDOK 按鈕屬性欄中的 Default button 屬性勾去。使得默認(rèn) Enter 鍵不再繼續(xù)響應(yīng)該按鈕。

            ?

            第三,恢復(fù) OnOk 函數(shù)的功能。首先在資源視圖中,將 IDOK 按鈕的 ID 改變?yōu)?/span> IDC_OK( 這里用戶根據(jù)需要可以自己設(shè)置資源的 ID) ;其次為其添加單擊響應(yīng)函數(shù),并在需要執(zhí)行結(jié)束的代碼后添加 CDialog::OnOK() 函數(shù),如下所示:

            void CDialogDemoDlg::OnOk()

            {

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

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

            }

            ?

            如上所述過(guò)程后,整個(gè) Enter 鍵默認(rèn)響應(yīng)已經(jīng)去除,而且也不會(huì)影響對(duì)話框正常響應(yīng) OnOK 函數(shù)的功能,在如上對(duì)話框處理后,如果 IDC_OK 按鈕的 TabOrder 屬性為 1 的話,按 Enter 鍵就相當(dāng)于鼠標(biāo)單擊 IDC_OK, 所以用戶必須在“ Layout ”的“ Tab Order ”下面重新布置 IDC_OK 按鈕的 TabOrder 順序。

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

            好了,去除對(duì)話框 Enter 鍵缺省響應(yīng)的過(guò)程就介紹到這里,讀者可以試著去去除 Esc 鍵的響應(yīng)。

            (注,該方法本人也是書(shū)上得來(lái),僅做個(gè)人總結(jié))

            ?
            posted on 2006-09-19 06:49 frank.sunny 閱讀(2436) 評(píng)論(1)  編輯 收藏 引用 所屬分類(lèi): MFC相關(guān)技術(shù)

            FeedBack:
            # re: 如何去除對(duì)話框默認(rèn)的Enter和Esc按鍵響應(yīng)
            2010-08-10 15:51 | joke
            謙虛使人進(jìn)步!
            博主寫(xiě)的蠻實(shí)用的  回復(fù)  更多評(píng)論
              

            常用鏈接

            留言簿(13)

            隨筆分類(lèi)

            個(gè)人其它博客

            基礎(chǔ)知識(shí)鏈接

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            国产免费久久精品99re丫y| 久久亚洲AV成人无码软件| 久久综合丝袜日本网| 国产精品免费久久| 中文成人久久久久影院免费观看| 亚洲精品国精品久久99热| 亚洲国产另类久久久精品黑人| 国产精品久久久久国产A级| 久久久久97国产精华液好用吗| 久久久久国产精品熟女影院| 久久精品国产亚洲Aⅴ香蕉| 久久久久久午夜成人影院| 一本色道久久综合狠狠躁篇 | 亚洲精品无码久久久影院相关影片 | 97久久久精品综合88久久| 日韩va亚洲va欧美va久久| 99久久精品午夜一区二区| 中文字幕无码久久人妻| 观看 国产综合久久久久鬼色 欧美 亚洲 一区二区 | 亚洲乱码中文字幕久久孕妇黑人| 女人香蕉久久**毛片精品| 久久综合综合久久综合| 欧美精品国产综合久久| 久久久久国产一区二区| 亚洲一本综合久久| 精品国产91久久久久久久| 久久婷婷五月综合97色| 久久久亚洲欧洲日产国码二区| 无码任你躁久久久久久老妇App| 久久伊人五月天论坛| 香蕉99久久国产综合精品宅男自| 久久精品国产亚洲Aⅴ蜜臀色欲 | 囯产极品美女高潮无套久久久| 中文字幕无码久久人妻| 伊人久久精品无码二区麻豆| 亚洲熟妇无码另类久久久| 久久青青草原亚洲av无码app| 国内精品久久久久影院一蜜桃| 97久久国产亚洲精品超碰热 | 国产精品久久久久乳精品爆| 伊人久久综在合线亚洲2019|