MFC程序設計小結


 

由於畢業設計要用到MFC,因此本人這段時間開始學習MFC編程,邊學邊做,現將一些重要的知識點總結如下:

  1. 創建一個MFC程序,操作步驟很簡單,要點就是選擇MFC AppWizard(exe)、單文檔或者多文檔,然后點擊完成。這樣一個基本MFC框架代碼就生成了。
  2. 用戶通過使用資源編輯器來生成圖形用戶界面,VC++6.0可以處理的資源有Accelerator(快捷鍵)、Bitmap(位圖)、Dialog(對話框)、Icon(圖標)、Menu(菜單)、Toolbar(工具欄)、Version(版本信息)、String Table(字符串表)等。用戶可以自主添加這些控件來制作圖形界面。
  3. MFC編程的核心思想是消息映射、事件驅動。消息一般指用戶向應用程序傳遞的信息,例如用戶單擊鼠標左鍵,這就是一個消息。應用程序接受到消息后,就會做出相應的反應。這里的反應是通過消息處理函數實現的。在用戶添加控件后,通過為其建立類向導,設置好相應的消息類型,添加消息處理函數。最后由用戶來實現這些消息處理函數。關鍵字afx_msg來表明某函數為消息處理函數。
  4. 除了給控件建立相應的消息映射函數,我們還需要給控件建立相應的變量,給控件添加建立類向導,選擇成員變量一項,確定變量名、變量類型之后class wizard會自動添加相應的DDX函數,這是用來給指定對象建立數據交換的環境
  5. MFC是用c++將win32API以類的形式封裝起來了。MFC提供了幾個很重要的類:CWINApp類CDocument類CDialog類CFrameWnd類、CView類等,其中CWINApp類及其派生類負責整個程序的執行與終止,這也是我們看不到MFC程序入口的原因。CDocument類負責應用程序的數據管理。CDialog類負責顯示和管理對話框。CFrameWnd類是邊框窗口類的基類,單文檔接口的邊框窗口類是直接從CFrameWnd類派生的。CMDIFrameWnd類和CMDIChildWnd類都是從CFrameWnd類派生的,分別用來支持多文檔接口的主邊框窗口與子窗口。CView類提供了用戶自定義視圖類的公共接口。
  6. MFC新建的子對話框沒有用於初始化對話框的OnInitDialog()函數,可以手動添加,也可以通過類向導添加。添加方法參考:https://jingyan.baidu.com/article/1974b289a697daf4b1f77495.html  注意要選擇類對話框對應的類名,不是對話框的ID。
  7. 使用組框需要注意一些問題,建立一個組框之后,然后選擇樣式,在類型一欄先選擇簡單,確定下拉框的大小范圍,然后再選擇下移類型,這樣一個下拉列表就完成了。
  8. MFC中可以給單文檔程序添加背景圖片,操作方法如下:https://blog.csdn.net/menshu1892/article/details/69569647
  9. MFC程序中,通過AfxMessageBox()這個函數來輸出信息,相當於控制台程序里的printf()函數,這是一個非常重要的函數,在調試程序的過程中常常需要使用到這個函數。
  10. MFC程序中設置主窗口標題的方法:

    在C項目名App::InitInstance()中,找到m_pMainWnd所在的位置(在函數返回前)添加一句代碼:

    m_pMainWnd->SetWindowText("Your Title");即可。

  11. 在新建一個對話框時,會自帶‘確定‘‘取消‘按鈕。確定按鈕默認ID是IDOK,取消按鈕默認ID是IDCANCEL,如果你沒有在你的對話框類中重載OnOK,OnCancel函數的話,就調用基類的OnOk,OnCancel函數。這兩個函數都調用EndDialog();函數來結束對話框。
  12. 有時候可能會遇到這樣一種情況:在編譯的時候,提示對話框的ID沒有定義,但是這個這個時候明明定了對話框的ID,這種情況一般出現在一個對話框里調用另一個對話框這種情況。解決辦法有兩種:1、將對應的對話框ID換成數字,數字可以在資源文件resource.h里查看。2、在對話框的實現文件里包含resource.h。

 

這里我個人推薦一片關於MFC新手入門,寫的很不錯,鏈接:https://wenku.baidu.com/view/bcc4a34000f69e3143323968011ca300a6c3f6a5.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM