程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> MFC入門相關,mfc入門

MFC入門相關,mfc入門

編輯:C++入門知識

MFC入門相關,mfc入門


1.MFC的“匈牙利標識符命名法”,這是一個約定,可以增加代碼的可讀性:

  • 聲明或定義了一個類,那麼這個類可以以“C”(class)為前綴,如CHelloWorldDlg類;
  • 定義一個無符號型的局部變量,可以用“u”(unsigned)為前綴,如UINT uPort; ULONG uFlags;
  • 如果是int或long類型的變量,則以“n”為前綴;
  • DWORD類型的變量前綴為“dw”;
  • 字符數組以“sz”作為前綴;
  • CString類的對象以“str”作為前綴;
  • 指針以“lp”或“p”(long pointer或pointer,在WIN32環境下這兩種指針並沒有什麼差別)作為前綴;
  • 引用以“r”為前綴;
  • 布爾型變量以“b”為前綴;
  • 句柄型的變量以“h”(handle)作為前綴。
  • 如果變量是全局的,那麼以“g_”(global)開頭,如BOOL g_bFlags;
  • 如果是類的成員變量則以“m_”(member)開頭,如HICON m_hIcon;。

 

2.對話框資源與類的綁定:

1 enum { IDD = IDD_HELLOWORLD_DIALOG };

 

3.成員函數:

  • virtual void DoDataExchange(CDataExchange* pDX);是用來支持DDX(對話框數據交換,將一個變量和一個控件進行綁定的時候用DDX)和DDV(對話框數據效驗,檢驗該控件是否為你所需要的時候用DDV)機制的成員函數。
  • virtual BOOL OnInitDialog();是在對話被創建(Create)後立即被執行的函數,因此在這裡可以添加對話框的初始化所需要的自定義代碼。
  • afx_msg void OnSysCommand(UINT nID, LPARAM lParam);是對話框的處理WM_SYSCOMMAND消息的函數。WM_SYSCOMMAND消息是關於系統控制的消息,如鼠標在標題欄上的操作等。
  • afx_msg void OnPaint();是對話框處理WM_PAINT的函數,當對話框窗體發生重繪時有WM_PAINT消息到達程序。
  • afx_msg HCURSOR OnQueryDragIcon();當用戶拖動最小化窗口時系統調用此函數取得光標顯示。
  • afx_msg void OnBnClickedHelloworld();是處理按鈕單擊消息的處理函數。

 

4.Edit控件:

  • GetDlgItem()函數是獲取的其文本內容,獲取數值:int nValue = _ttoi(strInput);的方法來轉換。
  • 右鍵點擊添加的控件,選擇“添加變量”菜單項,設置其訪問屬性(建議用protected);在類別中選擇Value(默認是Control);設置int和變量名m_nValue,點擊完成按鈕。完成“添加變量”向導後,在DoDataExchange()中,系統自動添加了一條語句:DDX_Text(pDX, IDC_INPUT, m_nValue);意思是將ID為IDC_INPUT的控件與m_nValue成員變量進行綁定。當程序執行UpdateData()的時候,數據便開始進行交換,數據交換方向由UpdateData的參數確定。
  • UpdateData(TRUE);就是讓文本框的值更新到m_nValue裡,如果是UpdateData(FALSE);就是將變量中的數據返回給文本框裡。

 

5.Check控件和Radio控件:

BOOL bState;
bState = ((CButton*)GetDlgItem(IDC_CHECK1))->GetCheck();//獲取復選框狀態,一定要再獲得CWnd指針後,強制轉換為CButton指針
((CButton*)GetDlgItem(IDC_RADIO1))->SetCheck(1);        //設置單選框狀態為選中

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved