日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

VS2013 MFC基于对话框编程(创建工程)

發布時間:2023/12/18 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VS2013 MFC基于对话框编程(创建工程) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


一、新建MFC項目

  • 選擇:基于對話框
  • MFC的使用:?
    在共享DLL中使用MFC (程序運行需要dll)?
    在靜態庫中使用MFC (程序較大,運行時不需要dll)?
  • 設置MFC程序主框架樣式和標題?
  • 高級功能?
    若是用不上“ActiveX控件”可以去掉勾選,若要涉及到網絡編程就把“windows嵌套字”選上?

  • 完成?

  • 二、MFC程序執行流程

  • 每創建一個MFC項目,默認包含3個類,“關于”對話框、主對話框類、初始化項目的App類。
  • 項目生成后,都會有一個屬于App類的theApp對象,對本應用程序實例化。
  • // CMFCTest1App 構造CMFCTest1App::CMFCTest1App() {// 支持重新啟動管理器m_dwRestartManagerSupportFlags = AFX_RESTART_MANAGER_SUPPORT_RESTART;// TODO: 在此處添加構造代碼,// 將所有重要的初始化放置在 InitInstance 中 }// 唯一的一個 CMFCTest1App 對象CMFCTest1App theApp;
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
  • 應用程序創建完成,程序開始運行,進入消息循環,windows程序的事件都是消息驅動的,每產生一個消息就觸發一個響應事件,消息和事件通過聲明消息映射DECLARE_MESSAGE_MAP()聯系在一起。?
    默認包含三個消息:
  • BEGIN_MESSAGE_MAP(CMFCTest1Dlg, CDialogEx)ON_WM_SYSCOMMAND() //響應控制指令ON_WM_PAINT() //響應繪圖消息,用于刷新窗口ON_WM_QUERYDRAGICON() //當用戶拖動最小化窗口時取得光標 END_MESSAGE_MAP()
    • 1
    • 2
    • 3
    • 4
    • 5
  • 當應用程序關閉時,會發送WM_CLOSE消息,程序相應后結束。在類向導中可以添加消息處理函數。?
  • void CMFCTest1Dlg::OnClose() {// TODO: 在此添加消息處理程序代碼和/或調用默認值if (MessageBox(_T("確定退出嗎"),_T("提示"),MB_YESNO|MB_ICONWARNING)==IDNO){return;}CDialogEx::OnClose(); }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    5.應用程序通過定義,初始化,由winmain開始,注冊、創建、顯示窗口,消息響應,程序終止,結束運行周期

    三、對話框類

  • afx_msg宏?
    afx_msg宏沒有任何語法上的實際意義。afx_msg宏表示聲明的是一個消息響應函數。
  • DoDataExchange函數?
    用于存放各類控件的變量信息
  • OnInitDialog函數?
    用于初始化對話框
  • OnSysCommand系統指令響應函數,默認處理窗口最小化和最大化指令等
  • OnPaint繪圖消息響應函數
  • 調出類向導?
    項目->類向導,快捷鍵Ctrl+shilft+X

    四、添加按鈕

  • 將默認對話框中的靜態文本和原有按鈕刪除,添加新的按鈕1和按鈕2,在屬性頁中可以查看并設置。一般只需要修改兩個屬性,“Caption”和“ID”,前者是按鈕的文本,后者是其唯一標識。?

  • 為按鈕添加事件處理函數

  • 實現按鈕的功能?
    添加按鈕的控件型變量,變量命名一般以“m_”開頭,后面部分為按鈕功能簡要說明。?

  • 在初始化函數OnInitDialog中修改Exit對話框不可用
  • // TODO: 在此添加額外的初始化代碼m_Exit.EnableWindow(FALSE);
    • 1
    • 2
  • 添加處理事件
  • void CMFCTest1Dlg::OnBnClickedButton1() {// TODO: 在此添加控件通知處理程序代碼CString str;m_Enable.GetWindowTextW(str);if (str=="使能"){m_Exit.EnableWindow(TRUE);m_Enable.SetWindowTextW(_T("使不能"));}else{m_Exit.EnableWindow(FALSE);m_Enable.SetWindowTextW(_T("使能"));} }void CMFCTest1Dlg::OnBnClickedButton2() {// TODO: 在此添加控件通知處理程序代碼SendMessage(WM_CLOSE, 0, 0); }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
  • 6.

  • 總結

    以上是生活随笔為你收集整理的VS2013 MFC基于对话框编程(创建工程)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。