日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

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

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


一、新建MFC項(xiàng)目

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

  • 完成?

  • 二、MFC程序執(zhí)行流程

  • 每創(chuàng)建一個(gè)MFC項(xiàng)目,默認(rèn)包含3個(gè)類,“關(guān)于”對話框、主對話框類、初始化項(xiàng)目的App類。
  • 項(xiàng)目生成后,都會有一個(gè)屬于App類的theApp對象,對本應(yīng)用程序?qū)嵗?/li> // CMFCTest1App 構(gòu)造CMFCTest1App::CMFCTest1App() {// 支持重新啟動管理器m_dwRestartManagerSupportFlags = AFX_RESTART_MANAGER_SUPPORT_RESTART;// TODO: 在此處添加構(gòu)造代碼,// 將所有重要的初始化放置在 InitInstance 中 }// 唯一的一個(gè) CMFCTest1App 對象CMFCTest1App theApp;
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
  • 應(yīng)用程序創(chuàng)建完成,程序開始運(yùn)行,進(jìn)入消息循環(huán),windows程序的事件都是消息驅(qū)動的,每產(chǎn)生一個(gè)消息就觸發(fā)一個(gè)響應(yīng)事件,消息和事件通過聲明消息映射DECLARE_MESSAGE_MAP()聯(lián)系在一起。?
    默認(rèn)包含三個(gè)消息:
  • BEGIN_MESSAGE_MAP(CMFCTest1Dlg, CDialogEx)ON_WM_SYSCOMMAND() //響應(yīng)控制指令ON_WM_PAINT() //響應(yīng)繪圖消息,用于刷新窗口ON_WM_QUERYDRAGICON() //當(dāng)用戶拖動最小化窗口時(shí)取得光標(biāo) END_MESSAGE_MAP()
    • 1
    • 2
    • 3
    • 4
    • 5
  • 當(dāng)應(yīng)用程序關(guān)閉時(shí),會發(fā)送WM_CLOSE消息,程序相應(yīng)后結(jié)束。在類向?qū)е锌梢蕴砑酉⑻幚砗瘮?shù)。?
  • void CMFCTest1Dlg::OnClose() {// TODO: 在此添加消息處理程序代碼和/或調(diào)用默認(rèn)值if (MessageBox(_T("確定退出嗎"),_T("提示"),MB_YESNO|MB_ICONWARNING)==IDNO){return;}CDialogEx::OnClose(); }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    5.應(yīng)用程序通過定義,初始化,由winmain開始,注冊、創(chuàng)建、顯示窗口,消息響應(yīng),程序終止,結(jié)束運(yùn)行周期

    三、對話框類

  • afx_msg宏?
    afx_msg宏沒有任何語法上的實(shí)際意義。afx_msg宏表示聲明的是一個(gè)消息響應(yīng)函數(shù)。
  • DoDataExchange函數(shù)?
    用于存放各類控件的變量信息
  • OnInitDialog函數(shù)?
    用于初始化對話框
  • OnSysCommand系統(tǒng)指令響應(yīng)函數(shù),默認(rèn)處理窗口最小化和最大化指令等
  • OnPaint繪圖消息響應(yīng)函數(shù)
  • 調(diào)出類向?qū)?
    項(xiàng)目->類向?qū)?#xff0c;快捷鍵Ctrl+shilft+X

    四、添加按鈕

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

  • 為按鈕添加事件處理函數(shù)

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

  • 在初始化函數(shù)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.

  • 總結(jié)

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

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。