MFC常用函數
- 2020 年 11 月 20 日
- 筆記
1、MFC的常用函數(只是找了些經常使用的,這裡沒有的可以CSDN查找,不需要都記住,經常使用自動就會記得)
1)GetDlgItemText(ID ,str)作用:
對話框中獲取文本第一個參數為要獲取的編輯框(或者靜態文本框、單選按鈕等可以顯示內容的控制項)的ID,第二個參數為字元串(Cstring 類型)的變數,獲取的文本存儲在str中。
2)SetDlgItemText(ID,str)
作用:將字元串顯示在控制項中
第一個參數為要顯示的編輯框(或者靜態文本框、單選按鈕、組合框等可以顯示內容的控制項)的ID,第二個參數為字元串(Cstring 類型)的變數,顯示的文本存儲在str中。
如果要顯示的變數的類型不是Cstring,則通過Format函數強制轉換。通常還要加一個UpDateData(FALSE)。
3)UINT nID=GetCheckedRadioButton(IDC1, IDC2);
作用:獲取單選框的選項的ID
第一個參數為該組合框中第一個單選按鈕的ID,第二個參數為該組合框中最後一個按鈕的ID。
4)CheckRadioButton(IDC1, IDC2, IDC3);
作用:初始化單選按鈕
第一個參數為該組合框中第一個單選按鈕的ID,第二個參數為該組合框中最後一個按鈕的ID,第三個參數為為預設選項的ID。
5)m_scrollBar.SetScrollRange(0, 500) ;
作用:設置水平滾動條的取值範圍,m_scrollBar為水平滾動條的控制類型的變數,0為設置最小值,500為設置的最大值。
6)m_nAmount = m_slider.GetPos() ;
作用:獲取滑塊的當前位置。
7)m_slider.SetRange(0,1000) ;
作用://設置滑塊取值範圍
第一個參數為設置的最小值,第二個參數為設置的最大值。
8)double Volum = atof(strCtrl);
作用:將字元串strCtl轉換成浮點型的Volum
9)int Volum = atoi(strCtrl);
作用:將字元串strCtl轉換成整型的Volum
10)MessageBox(str) ;(局部函數)
作用:輸出字元串str
11)AfxMessageBox(str) ;(全局函數)
作用:輸出字元串str
12)tempt = m_time2.Format(“%H:%m:%S”) ;
作用:將時間轉化成字元型(時、分、秒)
m_time2為日曆時間選取器的變數,tempt為CString型變數
13)tempt = m_time.Format(“%Y-%m-%d”) ;//將時間轉化成字元型
作用:將時間轉化成字元型(年、月、日)
m_time2為日曆時間選取器的變數,tempt為CString型變數
14)m_time = CTime::GetCurrentTime();
作用:獲取系統當前時間
m_time為Ctime類型的變數。
15)m_list.AddString(str);
功能:將Cstrig類型的變數的內容顯示在列表框中(或者組合框中)。m_str為ClistBox類型的變數(或者是CcomboBox類型的變數)。
16)m_time = CTime(2012 ,5 ,28 ,0 ,0 ,0) ;
功能:初始化日期,m_time為Ctime類型的變數
17)str.TrimLeft();
功能:去掉Cstring類型變數的左邊的空格
18)str.TrimRight();
功能:去掉Cstring類型變數的右邊的空格
19)str.IsEmpty();
功能:判斷Cstring類型的變數str是否為空,如果為空則返回1,否則返回零。
20)int nIndex=m_list.FindString(int k,str);
從第k個位置開始查找,若為-1,則從頭至尾查找。
函數原型:
int FindString(int nStartAfter,LPCTSTR lpszItem) const;
int FindStringExact(int nIndexStart,LPCTSTR lpszFind) const;
其中,FindStringExact的查找精度最高
21)m_list.ResetContent() ;
功能:清空列表框中的內容
m_list為ClistBox類型變數。
22)m_listSearch.DeleteString(int nIndex);
功能:刪除列表框中的第nIndex條記錄。
m_listSearch為ClistBox類型變數。
23)GetDlgItem(IDC_BUTTON_DELETE)->EnableWindow(FALSE);
功能:是ID為IDC_BUTTON_DELETE的按鈕灰選。
24)GetDlgItem(IDC_BUTTON_DELETE)->EnableWindow(TRUE);
功能:是ID為IDC_BUTTON_DELETE的按鈕還原。
25)str.Left(length);
功能:獲取字元串str左邊長度為length的值。
26)int length = str.GetLength() ;
功能:獲取字元串str的長度
27)dlg.DoModal() ;
功能:建立一個對話框
dlg為該對話框的類的對象。
28)CDialog::OnCancel() ;
功能:關閉窗口
29)CMenu* pSysMenu=GetMenu();
功能:獲取程式菜單指針
30)int nCount=pSysMenu->GetMenuItemCount();
功能:獲取項層菜單項的項數
31)int nIndex=m_ListBox.GetCurSel();
功能:獲取指針在列表框中的位置
m_ListBox為ClistBox類型變數。
32)GetWindowText(str) ;
功能:獲取當前窗口的標題
Str為Cstring 類型的變數
33)GetDlgItem(IDC_CLICKHERE)->SetFocus();
將游標設置在控制項IDC_CLICKHERE處,若是在打開某個對話框時候做此設置,則將該語句加到消息處理函數OnInitDialog的return語句前,並且將最後的語句 return TRUE; 該為
return FALSE;GetDlgItem(IDC_CLICKHERE)->SetFocus();也可寫成m_strit.SetFocus();其中m_strit為該控制項對應的變數。
34)GetDlgItem(IDC_STATIC_NUMBER1)
功能:獲取ID為IDC_STATIC_NUMBER1控制項的指針.
例如:
CString str ;
GetDlgItem(IDC_STATIC_NUMBER1)->GetWindowText(str) ;//此句等價於
GetDlgItemText(IDC_STATIC_NUMBER1,str);
35)int num1 = GetDlgItemInt(IDC_EDIT1);
功能:獲取ID為IDC_EDIT1控制項的文本並且轉化成整形的值,如果文本中含有非數字字元則轉化失敗.
36)SetDlgItemInt(IDC_EDIT3,num3) ;
功能:將整數num3顯示在ID為IDC_EDIT3的編輯框中.
37)SendMessage(GetDlgItem(IDC_EDIT1)->m_hWnd,WM_GETTEXT,10,(LPARAM)ch1);
注意:在函數前面加上作用域分節符表示調用的是全局函數.
功能:取ID為IDC_EDIT1控制項的文本,獲取的最大長度為10,並且將獲取的內容存儲在ch1中.相當於GetDlgItemText(IDC_EDIT1,ch1,10);
說明:第一個參數為對應控制項的句柄,第二個參數為消息名稱,第三個參數為獲取文本的最大長度,第四個參數為存儲文本的緩衝區,此處ch1為字元數組,即 char ch110];
第四個參數的類型必須強制轉換成LPARAM.
此函數有多種調用方式,其功能是相同的。列舉如下:
(1) SendMessage(GetDlgItem(IDC_EDIT1)->m_hWnd,WM_GETTEXT,10,(LPARAM)ch1);
(2) GetDlgItem(IDC_EDIT1)->SendMessage(WM_GETTEXT,10,(LPARAM)ch1);
(3) m_edit1.SendMessage(WM_GETTEXT,10,(LPARAM)ch1);
(4) SendMessage(m_edit1.m_hWnd,WM_GETTEXT,10,(LPARAM)ch1);
其中m_edit1是IDC_EDIT1控制項的類別為Control,類型為CEdit的變數.
38)SendMessage(GetDlgItem(IDC_EDIT3)->m_hWnd,WM_SETTEXT,0,(LPARAM)ch3);
功能:將緩衝區ch3的內容顯示在D為IDC_EDIT1控制項上.其作用相當於SetDlgItemText(IDC_EDIT1,ch1);
說明:第一個參數為對應控制項的句柄,第二個參數為消息名稱,第三個參數用不上,故設置為零,第四個參數為要顯示的文本內容, 第四個參數的類型必須強制轉換成LPARAM.
39)SendDlgItemMessage(IDC_EDIT1,WM_GETTEXT,10,(LPARAM)ch1);
功能等價於::SendMessage(GetDlgItem(IDC_EDIT1)->m_hWnd,WM_GETTEXT,10,(LPARAM)ch1);
40)SendDlgItemMessage(IDC_EDIT3,WM_SETTEXT,0,(LPARAM)ch3);
功能等價於::SendMessage(GetDlgItem(IDC_EDIT3)->m_hWnd,WM_SETTEXT,0,(LPARAM)ch3);
2.總結
有了這些MFC的函數對於操作介面很輕鬆了,好好多做些demo,來熟練這些函數,明天再寫一些數據類型,就可以寫一些小遊戲了。
改變自己,從現在做起———–久館