C++ MFC中典型類和函數的介紹

原文鏈接:http://c.biancheng.net/cpp/html/3073.html

在MFC中,典型的類有CString、CRect、CDialog等等。這裏篇幅有限,以CString類的使用爲例做一個詳細說明。類的使用主要還是使用類的方法,可以查看類的定義,查看這個類提供了哪些方法,在使用的時候,只需要注意方法的返回值和參數即可。這些類的使用方法是通用的,大家在學習的時候要注意體會和總結。

MFC字符串操作類CString

CString是用來表示可變長度的字符串的類。在MFC中,這個類的使用頻率非常高。CString是MFC經過封裝後特有的一種字符串類型,較string或iftream或oftream的字符串有更多明顯的有點,如使用CString可不指明內存大小,CString會根據需要自行分配,除此之外還可以對字符串進行拼接操作。因爲MFC已經對這個類進行了封裝,我們可以在MFC程序任何地方調用它提供的一系列操作字符串的方法,示例代碼如下:

//CString 使用方法示例
CString strTemp=_T("MFC Tutorial");
//(1)獲取字符串的長度
//結果: iLength=12,中間的空格也算一個字符
int iLength=strTemp.GetLength();
//(2)獲取字符串strTemp的第三個字符
//結果:cFlag=‘C’
char cFlag=strTemp.GetAt(2);
//(3)數據類型轉換 將char型字符轉換爲CString類型 數據類型的轉換內容較多,後面會單獨討論
//結果:strS=_T("C");
CString strS=_T("");
strS.Format(_T("%c"),cFlag);
//(4)字符串比較 Compare方法,如果兩個一致,返回0;不一致,返回-1
//結果:iResult0==0;iResult1==-1;iResult2=1
int iResult0=strTemp.Compare(_T("MFC Tutorial"));
int iResult1=strTemp.Compare(_T("MFC TutorialX"));
int iResult2=strTemp.Compare(_T("MFC TutoRiaL"));
//(5)字符串比較 CompareNoCase方法,如果兩個不區分大小寫一致,返回0;
//結果:iResult3==0;iResult4==0;iResult5==-120
int iResult3=strTemp.CompareNoCase(_T("MFC Tutorial"));
int iResult4=strTemp.CompareNoCase(_T("MFC TutoRiaL"));
int iResult5=strTemp.CompareNoCase(_T("MFC TutoRiaLX"));
//(5)改爲小寫
//結果mfc tutorial
CString strLower=strTemp.MakeLower();
//(6)改爲大寫
//結果MFC TUTORIAL
CString strUpper=strTemp.MakeUpper();
//(6)獲取逆序的字符串
//結果LAIROTUT CFM
CString strReverse=strTemp.MakeReverse();

對代碼的說明:
1) CString 是MFC提供的類,這個例子中列舉了這個類的幾個使用方法。這些方法是如何封裝的對我們使用者來說是透明的,我們不可暫時不必深究。暫時只需要掌握如何使用這些方法即可。使用的時候,也只需關注方法的原型,參數和返回值即可。同樣,對於使用 MFC提供的其他類封裝的方法原理是一樣的,希望大家仔細體會,融會貫通。

2) CString在MFC中應用非常廣泛,後面將會給出這個類的具體使用方法示例,可以本章的從源碼庫中獲取。

典型函數

在MFC中,經常會看到以Afx開頭的一些函數,如下所示:

CWindApp* AfxGetApp();
HINSTANCE AfxGetInstanceHandle( );
HINSTANCE AfxGetResourceHandle( );
int AfxMessageBox( LPCTSTR lpszText, UINT nType = MB_OK, UINT nIDHelp = 0 );

這裏說明一下,Afx前綴的函數代表應用程序框架(Application Framework)函數。應用程序框架實際上是一套輔助我們生成應用程序的框架模型。該模型把多個類進行了一個有機的集成,可以根據該模型提供的方案來設計自己的應用程序。在MFC中,以Afx爲前綴的函數都是全局函數,可以在程序的任何地方調用他們。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章