1. 程式人生 > >MFC原創教程:從不會開始(對話方塊1)

MFC原創教程:從不會開始(對話方塊1)

後話:第一次接觸MFC可能感覺亂七八糟,明明感覺就應該只是和VB一樣。後來才知道它們最大的區別就是MFC是SDK,C++是面向物件程式設計。剛開始學的時候,都是在看原理什麼的,很難理解。很多人也說要從知其所以然開始,但我個人還是認為,先知道怎麼搞簡單的吧,認識是在實踐中長出來的。

第一篇:使用V6.0編譯器,我現在討厭死V6.0了,使用VS2010多方便,但以前的高手可能會說,V6.0輕巧,隨便到哪都可以現場除錯。但我想,V6.0的實在太老了,用過知道大概怎麼用了就好了……

1:新建--工程-MFC(exe)--基於對話方塊(D)--完成


2:建立對話方塊     ResourceView (資源檢視)--在資料夾Dialog(對話方塊)處單擊右鍵--插入Dialog
    這時系統自動建立一個ID為IDD_DIALOG1的視窗,右鍵點選IDD_DIALOG1(或者右鍵點選右邊建立的視窗檢視)--屬性--可以將ID修改為IDD_FRIST(好像習慣性都是大寫字母表示) 3:為對話方塊關聯類 第①種方法比較麻煩。     左鍵單擊創建出來的視窗檢視,按Ctrl+w  --  Creat a new class -- OK     這裡類的名字 Name 填寫為CFrist (類好像習慣以大寫C開頭,後面帶對話方塊ID),OK--OK,完成了類的建立。     這時單擊ClassView,就可以找到CFrist這個類了 第②種方法比較常用。 (通過類嚮導)     單擊ClassView--右鍵點選ProjectDIg classes--New Form--名稱:CSecond--OK。這樣就直接建立並且關聯了類。 PS:右鍵點選類名稱--Go to Dialog Editor 就可以直接跳轉到該類關聯的對話方塊視窗檢視 3:顯示對話方塊 (模式對話方塊:程式在關閉模式對話方塊之前不能進行對話方塊切換;非模式對話方塊:可以自由切換到其它對話方塊中;) ①顯示模式對話方塊 建立一個觸發按鈕來顯示對話方塊。 ClassView中右鍵點選CProjectDIgDIg(預設介面的樣子)--Go to Dialog Editor--左鍵雙擊“確定”按鈕--OK 即建立了一個OnOK()的CProjectDIgDlg的成員函式,並且自動跳轉到程式碼頁面。 (可以刪去大括號裡面的預設內容)
    因為需要在當前檔案中訪問CFrist類,所以需要在當前檔案中,移到最上方,輸入:#include "Frist.h"。(注意不是CFrist.h,可以在ClassView雙擊CFrist,可以看到// Frist.h : header file )     然後就可以在OnOK函式裡面輸入     CFrist Frist;//建立類物件
Frist.DoModal();//顯示模式對話方塊;     編譯,執行,單擊確定,就知道什麼是模式對話方塊了。 ②顯示非模式對話方塊。     進入預設介面試圖,使用控制元件工具欄,單擊 按鈕 畫出一個按鈕。

    ClassVIew--雙擊CDialogDIg,在游標處上方輸入 #include"Second.h"

    在下方class CDialogDlg : public CDialog的public:輸入CSecond m_Second;(以m_為開頭說是不成文的約定)

    進入預設檢視介面,雙擊Button1,命名為OnSecond

程式碼設定:

void CDialogDlg::OnSecond() {
     m_Second.Create(IDD_SECOND_DIALOG); //對話方塊的建立,引數是對話方塊的ID(不像模式對話方塊,可以建立區域性變數來顯示模式對話方塊
     m_Second.ShowWindow(SW_SHOW);      //非模式對話顯示,SW_SHOW   是個常量,表示顯示(暫時不大理解SW_SHOW)

}

 ③設定對話方塊屬性

    選擇對話方塊,右鍵--屬性(或者選擇對話方塊--回車鍵)就可以修改標題等屬性。

    建立選單

    ResourceView--右鍵點選Dialog resources--插入--Menu--New。

    修改IDR_MENU1的ID為IDR_SYSMENU

    雙擊右邊選單視圖裡的小長方形,第一列設定標明:系統-退出-重新登陸。

    回到預設介面檢視--屬性--選單--選擇IDR_SYSMENU

     其它的設定(常規和樣式)看看應該就能瞭解,和VB一樣,也可以通過程式碼來修改屬性,比如:

    ClassView--CDialogDIg--雙擊OnInitDialog[],往下移動游標, 在 SetIcon(m_hIcon, FALSE);  // Set small icon 下方輸入:SetWindowText("對話方塊標題");