卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

在MFC中給輸入控件添加校驗的方法

大家好!今天我準備給大家介紹一下在MFC中給輸入控件添加校驗的方法。在之前的第3篇和第4篇文章中,我已經向大家介紹了MFC中DDX的用法,接下來,我將給大家介紹MFC中DDV的用法。同時,向大家補充一

大家好!今天我準備給大家介紹一下在MFC中給輸入控件添加校驗的方法。在之前的第3篇和第4篇文章中,我已經向大家介紹了MFC中DDX的用法,接下來,我將給大家介紹MFC中DDV的用法。同時,向大家補充一下“類向導”中添加值變量的完整過程。如果你覺得這篇教程有幫助,請為我投上寶貴的一票,謝謝!如果你對我寫的系列教程感興趣,就請“關注”我吧!

創(chuàng)建MFC對話框程序項目

1. 啟動VS2017軟件,創(chuàng)建一個名為“MFCDemo5”的MFC對話框程序項目。

2. 在資源視圖中,打開對話框資源編輯器,刪除主對話框上的所有控件(注意:默認控件一般是不需要的)。

3. 從工具欄中拖3個"Edit Control"到對話框中,然后調整它們的大小和位置。

添加控件值變量

4. 右鍵單擊第一個編輯框,然后打開“類向導窗口”,為"IDC_EDIT1"控件添加一個私有的值變量"_edit1"。設置完畢后,點擊“類向導窗口”中的“編輯代碼按鈕”查看代碼。

5. 根據之前的經驗,以這種方式添加控件值變量。VS是不會在DoDataExchange函數中為我們添加功能代碼的。所以,打開"MFCDemo5Dlg.cpp"文件,手動在DoDataExchange函數中添加關聯控件ID和控件值變量,以及檢測控件值變量的代碼。

控制輸入字符個數

6. 調試運行代碼,在彈出的對話框中,向第一個編輯框中輸入字符。當輸入字符超過6個后,就會輸不進去了。這正是DDV_MaxChars函數在發(fā)揮作用。

7. 關閉對話框,退出調試并返回到對話框資源編輯頁中。再次通過“類向導”為第2個編輯框添加成員變量。不同的是,這次保證“控件變量”為選中狀態(tài),然后在類別中選擇“Value”。同樣指定最大字符數為6。設置完畢后,點擊“完成”按鈕確認添加。

自動添加校驗函數

8. 返回到“類向導窗口”后,你會發(fā)現按這種方式添加的控件值變量,其控件ID竟然不是“自定義變量”。點擊“編輯代碼按鈕”,打開"MFCDemo5Dlg.cpp"文件,查看DoDataExchange函數,發(fā)現VS竟然幫我們寫好了DDX_Text和DDV_MaxChars函數。也就是說,我之前給大家介紹的取消“控件變量復選框”選中的做法,其實添加的只是一個自定義變量。

設置最大和最小值

9. 調試運行代碼,在第一個和第二個編輯框中,輸入“12345678”。結果,由于DDV的作用,這兩個編輯框中輸入“123456”就無法輸入了。嗯,一切正常,關閉對話框返回資源編輯頁。

10. 繼續(xù)通過“類向導”為第3個編輯框添加控件值變量,這次將最小值設置為“1000”,最大值設置為“1500”。然后點擊“完成按鈕”確認添加。

限制輸入范圍

11. 返回到“類向導”窗口后,點擊“編輯代碼”按鈕關閉類向導,跳轉到代碼文件中。查看DoDataExchange函數中新增的代碼,可以發(fā)現MFC通過DDV_MinMaxInt函數來限制控件值變量的最小和最大值。

12. 調試運行代碼,在彈出對話框的第3個編輯框中輸入“155555555”。額?!似乎已經超過最大值了。為什么沒起作用呢?關閉對話框,退出調試模式。

更新控件值

13. 切換到對話框編輯界面,從工具欄上拖動一個“Button”控件到對話框中,然后雙擊該按鈕控件添加單擊事件響應函數。在該函數中調用UpdateData(TRUE)函數更新控件值。

14. 再次調試運行程序,在彈出對話框的第3個編輯框中輸入“155555555”。當你點擊“Button1”按鈕時,由于DDV_MinMaxInt函數的作用,它檢測到IDC_EDIT3中輸入的值超出了范圍,因此會彈出一個提示框,要求輸入1000至1500之間的整數。

限制字符個數

15. 關閉對話框程序,返回到對話框資源編輯器頁。從工具欄中拖動一個“Combo Box”控件到對話框中。然后為其添加一個值變量并且指定輸入字符個數為2。

16. 再次調試運行程序,在組合框控件中輸入“666666”,結果發(fā)現它輸入2個字符后,就不能再輸入了。與之前編輯框的反應一致。

標簽: