六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

獲得OnOK退出控制

[摘要]作者:黃向明 讀者朋友可能知道,CDialog的OnOK虛函數控制了OK按鈕,它負責觸發數據交換以及從對話框中退出,然而,Enter鍵碰巧也具有同樣的效果。也許這是我們所需要的,也可能我們不需要這一功能,就是說不希望用戶在編輯框中按Enter鍵后出現關閉程序的情況。怎么解決這一問題?  一、 原...
作者:黃向明
  
讀者朋友可能知道,CDialog的OnOK虛函數控制了OK按鈕,它負責觸發數據交換以及從對話框中退出,然而,Enter鍵碰巧也具有同樣的效果。也許這是我們所需要的,也可能我們不需要這一功能,就是說不希望用戶在編輯框中按Enter鍵后出現關閉程序的情況。怎么解決這一問題?

  一、 原因

  當用戶按下Enter鍵時,Windows就會自動去找輸入焦點落在了哪一個按鈕上,當獲得焦點的按鈕的四周將被點線矩形包圍。如果所有按鈕都沒有獲得輸入焦點,Windows就會自動去尋找程序或資源所指定的默認按鈕(默認按鈕邊框較粗)。如果對話框沒有默認按鈕,那么即使對話框中沒有OK按鈕,OnOK函數也會自動被調用。

  二、 解決辦法

  為了使Enter鍵無效,最簡單的辦法就是將CExDlg的OnOK函數寫成空函數,然后針對OK按鈕寫一個新的函數來響應。下面是具體步驟:

    首先建立一個以Ex為名的基于對話框的程序。

  1.用ClassWizard映射IDOK按鈕到OnOK虛函數。

  在ClassWizard中,從CExDlg的Object Ids列表中選擇IDOK,然后單擊BN_CLICKED,這樣即產生了OnOK函數的原形和框架。

  2.利用對話框編輯器改變OK按鈕的ID。

  選擇OK按鈕,將它的ID由IDOK改為IDC_OK,并去掉Default Button屬性的復選標記。這樣OnOK函數即被分離出來。

  3.用ClassWizard創建一個OnClickedOK成員函數。

  在ClassWizard中,從CExDlg的Object Ids列表中選擇IDC_OK,然后單擊BN_CLICKED,函數名用OnClickedOK,產生了OnClickedOK函數的原形和框架。

  4.編輯代碼。

  void CExDlg::OnOK()

  {

    // TODO: Add extra validation here

  // CDialog::OnOK();

  }

  void CExDlg::OnClickedOk()

  {

      // TODO: Add your control notification handler code here

         CDialog::OnOK();

  }

  5.編譯并測試程序。

  重新編譯程序,然后測試一下Enter鍵,你會發現按下Enter鍵后將沒有任何動作,而單擊OK按鈕則仍然會和以前一樣。

  三、 OnCancel的處理

  正如Enter鍵可以觸發對OnOK函數的調用一樣,Esc鍵也可以觸發對OnCancel函數的調用。它將導致控制從對話框中退出。不過讀者可以像對OK按鈕一樣處理,通過設置一個無效的OnCancel函數來防止這一情況的出現。

  另外,本文示例是一個基于對話框的應用,如果是一般應用程序中的對話框,本文介紹的方法一樣適用。 


主站蜘蛛池模板: 在线观看 一区二区 麻豆 | 日韩成人免费在线视频 | 日韩视频福利 | 婷婷视频网 | 色噜噜视频影院 | 日本欧美一区二区三区高清 | 五月天天色 | 亚洲成a人在线观看 | 亚洲成a人v欧美综合天 | 欧美在线观看一区二区三区 | 亚洲第一成人在线 | 一区二区三区视频免费观看 | 天天影视色香欲 | 亚洲欧洲精品视频在线观看 | 奇米狠狠操 | 亚洲第一区精品观看 | 欧洲毛片| 在线你懂得 | 人人色在线视频播放 | 欧美性极品xxxxx | 欧美亚洲国产精品第一页 | 日本大片在线观看 | 香蕉香蕉国产片一级一级毛片 | 日日碰日日摸日日澡视频播放 | 日本激情在线看免费观看视频 | 亚州人成网在线播放 | 亚洲图片国产日韩欧美 | 亚洲国产天堂久久综合图区 | 欧美怡春院一区二区三区 | 五月综合色啪 | 色婷婷综合久久久久中文 | 亚洲综合久| 婷婷久久综合 | 窝窝午夜视频 | 天堂2019| 手机在线看片日韩 | 青青草原综合网 | 天天干夜夜笙歌 | 欧美一区二区三区在线可观看 | 天天躁夜夜躁狠狠躁2021a | 亚洲精品另类有吗中文字幕 |