這篇文章能讓初學(xué)者快速了解visual C++ MFC中常見(jiàn)的核心的類與函數(shù),雖然全部看下來(lái)有點(diǎn)枯燥,但對(duì)初學(xué)者快速了解MFC的框架結(jié)構(gòu)很有好處。
常用類
CArchive類:用于二進(jìn)制保存檔案
CBitmap類:封裝Windows的圖形設(shè)備接口(GDI)位圖
CBrush類:封裝圖形設(shè)備接口(GDI)中的畫刷
CButton類:提供Windows按鈕控件的功能
CByteArray類:該類支持動(dòng)態(tài)的字節(jié)數(shù)組
CCmdUI類:該類僅用于ON_UPDATE_COMMAND_UI處理函數(shù)中
CColorDialog類:封裝標(biāo)準(zhǔn)顏色對(duì)話框
CDC類:定義設(shè)備環(huán)境對(duì)象類
CDialog類:所有對(duì)話框(模態(tài)或非模態(tài))的基類
CDocument類:提供用戶定義的文檔類的基本功能
CEdit類:是一個(gè)用于編輯控件的類
CFile類:該類是基本文件類的基類
CFileDialog類:封裝了打開(kāi)和保存文件的標(biāo)準(zhǔn)對(duì)話框
CFindReplaceDialog類:封裝了標(biāo)準(zhǔn)查找/替換對(duì)話框
CFont類:封裝了Windows圖形設(shè)備接口(GDI)中的字體對(duì)象
CFontDialog類:封裝了字體選擇對(duì)話框
CGdiObject類:GDI繪圖工具的基類
CIPAddressCtrl類:提供了IP地址控件的功能
CImageList類:管理大小相同的圖標(biāo)或位圖集
CMenu類:封裝應(yīng)用程序菜單欄和彈出式菜單
CPen類:封裝了Windows圖形設(shè)備接口(GDI)中的畫筆對(duì)象
CPoint類:操作CPoint和POINT結(jié)構(gòu)
CRect類:封裝了一個(gè)矩形區(qū)域及相關(guān)操作
CRgn類:封裝用于操作窗口中的橢圓、多邊形或者不規(guī)則區(qū)域的GDI區(qū)域
CSize類:用于表示相對(duì)坐標(biāo)或位置
CSpinButtonCtrl類:旋轉(zhuǎn)控件Spin的控制類
CStatusBar類:狀態(tài)欄窗口的基類
CString類:處理字符串
CStringList類:支持CString對(duì)象的列表
CWinApp類:派生的程序?qū)ο蟮幕?nbsp;
CWnd類:提供所有窗口類的基本函數(shù)
CCmdTarget類:是MFC類庫(kù)中消息映射體系的一個(gè)基類
CWinThread類是MFC用來(lái)封裝線程的,包括UI線程和工作者線程。因此每個(gè)MFC程序至少使用一個(gè)CWinThread派生類
CDocTemplate是抽象的基類,它定義了文檔模板的基本函數(shù)功能
CMDIFrameWnd類提供了Windows多文檔界面(MDI)子窗口的功能和管理窗口的功能
CMDIChildWnd類提供了Windows多文檔界面(MDI)子窗口及用于管理窗口的成員
API函數(shù)
CArchive類:用于二進(jìn)制保存檔案
CArchive::CArchive 建立一個(gè)CArchive對(duì)象
CArchive(CFile* pFile,UINT nMode,int nBufSize=4096,void* lpBuf=NULL);
參數(shù):pFile 指向CFile對(duì)象的指針,這個(gè)CFile對(duì)象是數(shù)據(jù)的最終源或目的;
nMode是標(biāo)志,取值為CArchive::load時(shí),從文檔中加載數(shù)據(jù)(要求CFile讀許可),取值為CArchive::store時(shí),將數(shù)據(jù)存入文檔(要求CFile寫許可);
nBufSize 指定內(nèi)部文件緩沖區(qū)的大?。ò醋止?jié)計(jì));
lpBuf 指向大小為nBufSize的緩沖區(qū),若未指定,則從局部堆中分配一緩沖區(qū),并在該對(duì)象被刪除時(shí)釋放該緩沖區(qū),但不釋放用戶提供的緩沖區(qū)。
CArchive::Close 關(guān)閉檔案,清除緩沖區(qū)中剩余數(shù)據(jù),斷開(kāi)文件與檔案的連接
void Close();
操作符:
<< 存儲(chǔ)指定的對(duì)象到檔案(寫),一行可以使用多個(gè)析取操作符
>> 從檔案中加載指定的對(duì)象(讀),一行可以有多個(gè)插入操作符
CBitmap類:封裝Windows的圖形設(shè)備接口(GDI)位圖
CBitmap::LoadBitmap 加載位圖資源
BOOL LoadBitmap(UINT nIDResource);
BOOL LoadBitmap(LPCTSTR lpszResourceName);
參數(shù):nIDResource 位圖資源ID號(hào);lpszResourceName 位圖資源名
返回值:若成功,返回非0;否則返回0
CBrush類:封裝圖形設(shè)備接口(GDI)中的畫刷
CBrush::CreateSolidBrush 用指定顏色初始化一個(gè)單色畫刷
BOOL CreateSolidBrush(COLORREF crColor);
參數(shù):crColor 畫刷顏色
返回值:若成功,返回非0;否則返回0
CButton類:提供Windows按鈕控件的功能
CButton::Create 創(chuàng)建一個(gè)CButton對(duì)象
BOOL Create( LPCTSTR lpszCaption, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );
lpszCaption是按鈕上顯示的文本;
dwStyle指定按鈕風(fēng)格,可以是按鈕風(fēng)格與窗口風(fēng)格的組合,取值有:
窗口風(fēng)格:
WS_CHILD 子窗口,必須有
WS_VISIBLE 窗口可見(jiàn),一般都有
WS_DISABLED 禁用窗口,創(chuàng)建初始狀態(tài)為灰色不可用的按鈕時(shí)使用
WS_TABSTOP 可用Tab鍵選擇
WS_GROUP 成組,用于成組的單選按鈕中的第一個(gè)按鈕
按鈕風(fēng)格:
BS_PUSHBUTTON 下壓式按鈕,也即普通按鈕
BS_AUTORADIOBUTTON 含自動(dòng)選中狀態(tài)的單選按鈕
BS_RADIOBUTTON 單選按鈕,不常用
BS_AUTOCHECKBOX 含自動(dòng)選中狀態(tài)的復(fù)選按鈕
BS_CHECKBOX 復(fù)選按鈕,不常用
BS_AUTO3STATE 含自動(dòng)選中狀態(tài)的三態(tài)復(fù)選按鈕
BS_3STATE 三態(tài)復(fù)選按鈕,不常用
以上風(fēng)格指定了創(chuàng)建的按鈕類型,不能同時(shí)使用,但必須有其一。
BS_BITMAP 按鈕上將顯示位圖
BS_DEFPUSHBUTTON 設(shè)置為默認(rèn)按鈕,只用于下壓式按鈕,一個(gè)對(duì)話框中只能指定一個(gè)默認(rèn)按鈕
rect指定按鈕的大小和位置;
pParentWnd指示擁有按鈕的父窗口,不能為NULL;
nID指定與按鈕關(guān)聯(lián)的ID號(hào),用上一步創(chuàng)建的ID號(hào)。
返回值:若成功,返回非0;否則返回0
CButton::DrawItem 重載該函數(shù)繪制一個(gè)CButton對(duì)象,由框架調(diào)用該函數(shù)
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
參數(shù):lpDrawItemStruct指向包含繪制項(xiàng)信息和要求類型的LPDRAWITEMSTRUCT結(jié)構(gòu)的長(zhǎng)指針
CButton::SetCheck 設(shè)置或復(fù)位單選按鈕和復(fù)選按鈕的選擇狀態(tài)
void SetCheck(int nCheck);
參數(shù):nCheck 指定設(shè)置的狀態(tài),0為未選擇,1為選中,2為不確定
CByteArray類:該類支持動(dòng)態(tài)的字節(jié)數(shù)組
CByteArray::GetAt 獲取指定下標(biāo)處的數(shù)值,可以用運(yùn)算符[]代替
BYTE GetAt(int nIndex)const;
參數(shù):nIndex 數(shù)組下標(biāo),必須為有效值
返回值:指定下標(biāo)處的數(shù)組元素
CByteArray::GetData 訪問(wèn)數(shù)組元素
BYTE *GetData();
返回值:指向數(shù)組元素的指針
CByteArray::GetSize 獲取數(shù)組中元素個(gè)數(shù)
int GetSize()const;
返回值:數(shù)組的大小,比最大下標(biāo)大1
CByteArray::RemoveAll 刪除數(shù)組中所有元素
void RemoveAll();
CByteArray::SetAt 設(shè)置指定下標(biāo)處的數(shù)值,不擴(kuò)充數(shù)組
void SetAt(int nIndex,BYTE newElement);
參數(shù):nIndex 數(shù)組下標(biāo),必須為有效值;newElement 存入數(shù)組的新元素值
CByteArray::SetAtGrow 設(shè)置指定下標(biāo)處的數(shù)值,需要時(shí)可自動(dòng)擴(kuò)充數(shù)組
void SetAtGrow(int nIndex,BYTE newElement);
參數(shù):nIndex 數(shù)組下標(biāo),大于等于0;newElement 存入數(shù)組的新元素值
CByteArray::SetSize 設(shè)置數(shù)組的大小,并基于需要分配內(nèi)存;若新值小于原數(shù)組,則截?cái)嗯f數(shù)組,釋放所有未用內(nèi)存。
void SetSize(int nNewSize,int nGrowBy=-1);
參數(shù):nNewSize 新數(shù)組的大小,必須大于等于0;nGrowBy 擴(kuò)大數(shù)組時(shí)至少要分配的元素?cái)?shù)
CCmdUI類:該類僅用于ON_UPDATE_COMMAND_UI處理函數(shù)中
CCmdUI::Enable 使命令的用戶界面元素有效或無(wú)效
virtual void Enable(BOOL bOn=TRUE);
參數(shù):bOn 使用戶界面元素有效時(shí)為TRUE,無(wú)效時(shí)為FALSE
CCmdUI::SetCheck 設(shè)置命令的用戶界面元素為恰當(dāng)?shù)倪x擇狀態(tài)
virtual void SetCheck(int nCheck=1);
參數(shù):nCheck 為0,設(shè)置為不選擇,為1,設(shè)置為選擇,為2,設(shè)置為不確定
CColorDialog類:封裝標(biāo)準(zhǔn)顏色對(duì)話框
CColorDialog::CColorDialog 構(gòu)造一個(gè)CColorDialog對(duì)象
CColorDialog(COLORREF clrInit=0,DWORD dwFlags=0,CWnd* pParentWnd=NULL);
參數(shù):clrInit為缺省顏色選項(xiàng),若未指定值,則為黑色;
dwFlags是標(biāo)志,定制對(duì)話框的功能和外觀,為0時(shí)只顯示基本顏色,為CC_FULLOPEN時(shí),顯示完整顏色對(duì)話框;
pParentWnd 指向擁有對(duì)話框的父窗口
CColorDialog::GetColor 獲取用戶選擇的顏色
COLORREF GetColor()const;
返回值:選中顏色的RGB值
CDC類:定義設(shè)備環(huán)境對(duì)象類
CDC::BitBlt 從源設(shè)備環(huán)境拷貝一個(gè)位圖到當(dāng)前設(shè)備環(huán)境中
BOOL BitBlt(int x,int y,int nWidth,int nHeight,CDC* pSrcDC,int xSrc,int ySrc,DWORD dwRop);
參數(shù):x,y為目的矩形的左上角坐標(biāo);nWidth,nHeight為目的矩形的寬度和高度;pSrcDC是指向源設(shè)備環(huán)境的指針;xSrc,ySrc源位圖左上角的坐標(biāo);dwRop為光柵操作碼。
CDC::CreateCompatibleDC 創(chuàng)建一個(gè)與pDC指定的設(shè)備相兼容的內(nèi)存設(shè)備環(huán)境
virtual BOOL CreateCompatibleDC(CDC* pDC);
參數(shù):pDC 設(shè)備環(huán)境指針
返回值:若成功,返回非0;否則返回0
CDC::Detach 將設(shè)備環(huán)境從CDC對(duì)象中分離開(kāi)來(lái)
HDC Detach()
返回值:分離的設(shè)備環(huán)境
CDC::DrawEdge 繪制矩形邊框或邊框的一部分
BOOL DrawEdge(LPRECT lpRect,UINT nEdge,UINT nFlags);
參數(shù)lpRect指向矩形的RECT結(jié)構(gòu)的指針;nEdge指定矩形內(nèi)外邊界的風(fēng)格,必須是一個(gè)內(nèi)邊界標(biāo)志和外邊界標(biāo)志的組合,取值為:
BDR_RAISEDINNER:內(nèi)邊界凸出;
BDR_SUNKENINNER:內(nèi)邊界凹下;
BDR_RAISEDOUTER:外邊界凸出;
BDR_SUNKENOUTER:外邊界凹下;
nFlags指定邊界的類型,取值為:
BF_RECT:矩形的所有四邊;
BF_LEFT:矩形的左邊;
BF_BOTTOM:矩形的底邊;
BF_RIGHT:矩形的右邊;
BF_TOP:矩形的上邊;
BF_TOPLEFT:矩形的上邊和左邊;
BF_TOPRIGHT:矩形的上邊和右邊;
BF_BOTTOMLEFT:矩形的下邊和左邊;
BF_BOTTOMRIGHT:矩形的下邊和右邊。
返回值:若成功,返回非0;否則返回0。
CDC::DrawFocusRect 畫一個(gè)說(shuō)明輸入焦點(diǎn)的矩形
void DrawFocusRect(LPCRECT lpRect);
參數(shù):lpRect 指向繪制矩形的邏輯坐標(biāo)的RECT結(jié)構(gòu)或CRect對(duì)象。
CDC::DrawText 在指定的矩形內(nèi)繪制格式化的文本
virtual int DrawText(LPCTSTR lpszString,int nCount,LPRECT lpRect,UINT nFormat);
int DrawText(const CString& str,LPRECT lpRect,UINT nFormat);
參數(shù):lpszString指示要輸出的字符串;nCount為字符串中字節(jié)數(shù);lpRect指示文本所在的矩形;str為要輸出的CString對(duì)象;nFormat為格式化文本的方式,常用取值:
DT_BOTTOM 文本底對(duì)齊,必須和DT_SINGLELINE聯(lián)用;
DT_CENTER 居中顯示文本; DT_LEFT 文本左對(duì)齊;
DT_RIGHT 文本右對(duì)齊; DT_TOP 正文與行頂部對(duì)齊(僅指單個(gè)行);
DT_NOCLIB 繪制時(shí)不加裁減;DT_SINGLELINE 單行顯示;
DT_VCENTER 指定在垂直方向上居中顯示文本(僅只單個(gè)行);
DT_WORDBREAK 若單詞超過(guò)矩形邊界,行將在單詞間斷開(kāi)
返回值:若調(diào)用成功,返回文本的高度
CDC::FillSolidRect 用指定單顏色填充矩形
void FillSolidRect(LPCRECT lpRect,COLORREF clr);
void FillSolidRect(int x,int y,int cx,int cy,COLORREF clr);
參數(shù):lpRect指定要填充的矩形;clr填充的顏色
x,y矩形的左上角坐標(biāo),cx、cy為矩形寬度和高度
CDC::FromHandle 在給予一個(gè)設(shè)備環(huán)境句柄時(shí)返回一個(gè)CDC對(duì)象指針
static CDC* PASCAL FromHandle(HDC hDC);
參數(shù):hDC 設(shè)備環(huán)境句柄
返回值:CDC對(duì)象指針
CDC::GetTextExtent 使用當(dāng)前字體計(jì)算一行文本的寬度和高度
CSize GetTextExtent(LPCTSTR lpszString,int nCount)const;
CSize GetTextExtent(const CString& str)const;
參數(shù):lpszString指向一個(gè)字符串,nCount字符串中字符數(shù)
str 一個(gè)字符串對(duì)象
返回值:字符串文本的寬度和高度(以邏輯單位表示)
CDC::GetTextMetrics 檢取當(dāng)前字體的規(guī)格
BOOL GetTextMetrics(LPTEXTMETRIC lpMetrics)const;
參數(shù):lpMetrics 指向用于接收字體規(guī)格的TEXTMETRIC結(jié)構(gòu)
返回值:若成功,返回非0;否則返回0
CDC::LineTo 從當(dāng)前位置到指定點(diǎn)畫直線
BOOL LineTo(int x,int y);
BOOL LineTo(POINT point);
參數(shù):x、y為直線末端的坐標(biāo);point為直線末端的坐標(biāo)
返回值:若成功,返回非0;否則返回0
該函數(shù)通常與MoveTo()函數(shù)合起來(lái)完成畫線工作。
CDC::MoveTo 設(shè)置畫圖的起點(diǎn)位置
CPoint MoveTo(int x,int y);
CPoint MoveTo(POINT point);
參數(shù):x、y為新位置的坐標(biāo);point為新位置坐標(biāo)
返回值:先前位置的坐標(biāo)
CDC::PaintRgn 用當(dāng)前畫刷填充一個(gè)CRgn對(duì)象的區(qū)域
BOOL PaintRgn(CRgn* pRgn);
參數(shù):指向一個(gè)CRgn對(duì)象的指針
返回值:若成功,返回非0;否則返回0
CDC::Rectangle 用當(dāng)前畫筆畫一個(gè)矩形,并用當(dāng)前畫刷填充為實(shí)心矩形
BOOL Rectangle(int x1,int y1,int x2,int y2);
BOOL Rectangle(LPCRECT lpRect);
參數(shù):x1、y1為矩形左上角坐標(biāo),x2、y2為矩形右下角坐標(biāo)
lpRect為RECT結(jié)構(gòu)或CRect對(duì)象
返回值:若成功,返回非0;否則返回0
CDC::RestoreDC 將設(shè)備環(huán)境恢復(fù)成先前的狀態(tài)
virtual BOOL RestoreDC(int nSaveDC);
參數(shù):nSaveDC設(shè)備環(huán)境先前狀態(tài)的整數(shù)標(biāo)識(shí)
返回值:若成功,返回非0;否則返回0
CDC::RoundRect 用當(dāng)前畫筆畫一個(gè)圓角矩形,并用當(dāng)前畫刷填充
BOOL RoundRect(int x1,int y1,int x2,int y2,int x3,int y3);
BOOL RoundRect(LPCRECT lpRect,POINT point);
參數(shù):x1、y1為左上角坐標(biāo),x2、y2為右下角坐標(biāo),x3、y3為畫圓角的橢圓的邏輯寬度和高度
lpRect為RECT結(jié)構(gòu)或CRect對(duì)象,point中的x、y為畫圓角的橢圓的邏輯寬度和高度
返回值:若成功,返回非0;否則返回0
CDC::SaveDC 保存設(shè)備環(huán)境的當(dāng)前狀態(tài)
virtual int SaveDC();
返回值:若成功,返回標(biāo)識(shí)保存設(shè)備環(huán)境的整數(shù);若錯(cuò)誤返回0
CDC::SelectObject 將一個(gè)對(duì)象選入設(shè)備環(huán)境,替代同一類型的先前對(duì)象
CPen* SelectObject(CPen* pPen);
CBrush* SelectObject(CBrush* pBrush);
virtual CFont* SelectObject(CFont* pFont);
CBitmap* SelectObject(CBitmap* pBitmap);
int SelectObject(CRgn* pRgn);
參數(shù):要選入的新對(duì)象的指針
返回值:先前的舊對(duì)象的指針
CDC::SelectStockObject 將一個(gè)預(yù)定義的庫(kù)存對(duì)象裝入設(shè)備環(huán)境
virtual CGdiObject* SelectStockObject(int nIndex);
參數(shù):nIndex庫(kù)存對(duì)象的索引值,常用取值:
BLACK_BRUSH 黑色畫刷; DKGRAY_BRUSH 深灰色畫刷;
GRAY_BRUSH 灰色畫刷; LTGRAY_BRUSH 淺灰色畫刷;
WHITE_BRUSH 白色畫刷; HOLLOW_BRUSH 中空畫刷;
NULL_BRUSH 空畫刷;
BLACK_PEN 黑色畫筆; WHITE_PEN 白色畫筆;
NULL_PEN 空畫筆;
SYSTEM_FONT 系統(tǒng)字體;
返回值:被替換的CGdiObject對(duì)象的指針,若調(diào)用失敗,返回NULL
CDC::SetBkColor 設(shè)置當(dāng)前背景色
virtual COLORREF SetBkColor(COLORREF crColor);
參數(shù):crColor為新背景色
返回值:先前背景色;若錯(cuò)誤,返回值為0x80000000
CDC::SetBkMode 設(shè)置背景模式
int SetBkMode(int nBkMode);
參數(shù):nBkMode為要設(shè)置的背景模式,取值可以為:
OPAQUE 在繪制文本前用當(dāng)前背景色填充背景,這是缺省的背景模式
TRANSPARENT 繪制前不改變背景(即文字背景透明)
返回值:先前的背景模式
CDC::SetTextColor 設(shè)置文本顏色
virtual COLORREF SetTextColor(COLORREF crColor);
參數(shù):crColor指定文本顏色
返回值:先前的文本顏色
CDC::TextOut 用當(dāng)前字體在指定位置寫一字符串
virtual BOOL TextOut(int x,int y,LPCTSTR lpszString,int nCount);
BOOL TextOut(int x,int y,const CString& str);
參數(shù):x,y文本左上角坐標(biāo);lpszString指示要輸出的字符串;nCount為字符串中字節(jié)數(shù);str為要輸出的CString對(duì)象
返回值:若成功,返回非0;否則返回0
CDialog類:所有對(duì)話框(模態(tài)或非模態(tài))的基類
CDialog::DoModal 激活模態(tài)對(duì)話框,完成后返回對(duì)話框結(jié)果
virtual int DoModal();
返回值:若不可創(chuàng)建對(duì)話框,返回-1;若錯(cuò)誤返回IOABORT;若用戶用“確定”按鈕退出對(duì)話框,返回IDOK,否則返回IDCANCEL或0
CDocument類:提供用戶定義的文檔類的基本功能
CDocument::CanCloseFrame 在關(guān)閉框架窗口之間由框架調(diào)用
virtual BOOL CanCloseFrame(CFrameWnd* pFrame);
參數(shù):pFrame 指向連接到該文檔上的一個(gè)視的框架窗口
CDocument::SetTitle 指定文檔的標(biāo)題
virtual void SetTitle(LPCTSTR lpszTitle);
參數(shù):lpszTitle指向用作文檔標(biāo)題的字符串
CEdit類:是一個(gè)用于編輯控件的類
CEdit::Copy 將編輯控件中的當(dāng)前選擇以CF_TEXT格式拷貝到剪貼板中
void Copy();
CEdit::Cut 剪切編輯控件中所選文本并以CF_TEXT格式拷貝到剪貼板中
void Cut();
CEdit::GetModify 確定控件內(nèi)容是否修改
BOOL GetModify()const;
返回值:若控件內(nèi)容已修改,返回非0值,否則返回0。
CEdit::GetSel 獲取編輯控件中當(dāng)前選擇的位置
DWORD GetSel()const;
void GetSel(int& nStartChar,int& nEndChar)const;
參數(shù):nStartChar用于接收當(dāng)前選擇的第一個(gè)字符的位置;nEndChar用于接收當(dāng)前選擇后面第一個(gè)未選字符的位置。
返回值:低位字和高位字分別是當(dāng)前選擇開(kāi)始和選擇區(qū)后第一個(gè)未選字符的位置。
CEdit::Paste 將數(shù)據(jù)從剪貼板插入到編輯控件中的當(dāng)前光標(biāo)處
void Paste();
CEdit::ReplaceSel 用指定的文本替換編輯控件內(nèi)選擇的文本
void ReplaceSel(LPCTSTR lpszNewText,BOOL bCanUndo=FALSE);
參數(shù):lpszNewText指向替換文本的字符串;bCanUndo為TRUE時(shí),指定該操作可以用Undo()撤銷
CEdit::SetLimitText 設(shè)置CEdit控件可接收文本的最大字節(jié)數(shù)
void SetLimitText(UINT nMax);
參數(shù):nMax 新文本限制,按字節(jié)計(jì)。
CEdit::SetModify 設(shè)置控件修改標(biāo)志
void SetModify(BOOL bModified=TRUE);
參數(shù):bModified 為TRUE,指示控件已修改,為FALSE,清除修改標(biāo)志
CEdit::SetSel 設(shè)置編輯控件中選擇的字符
void SetSel(DWORD dwSelection,BOOL bNoScroll=FALSE);
void SetSel(int nStartChar,int nEndChar,BOOL bNoScroll=FALSE);
參數(shù):dwSelection 若低位字為0而高位字為-1,則選擇所有文本;若低位為-1,則撤銷當(dāng)前選擇;bNoScroll 為FALSE時(shí)插入字符滾入視野,否則插入字符不滾入視野;
nStartChar指定選擇的起始位置,nEndChar指定選擇的終止位置;若nStartChar為0且nEndChar為-1,選擇所有文本;若nStartChar為-1,撤銷當(dāng)前選擇
CFile類:該類是基本文件類的基類
CFile::Close 關(guān)閉文件,使該文件不可用于讀寫
virtual void Close();
CFile::GetLength 求文件長(zhǎng)度(以字節(jié)計(jì))
virtual DWORD GetLength()const;
返回值:文件長(zhǎng)度
CFile::Open 打開(kāi)文件
virtual BOOL Open(LPCTSTR lpszFileName,UINT nOpenFlags,CFileException* pError=NULL);
參數(shù):lpszFileName指定打開(kāi)文件的路徑;nOpenFlags 定義文件的共享和存取方式;pError指向一個(gè)已有的文件異常對(duì)象的指針。
nOpenFlags的常用取值:
CFile::modeCreate 創(chuàng)建一個(gè)新文件,若文件已存在,則該文件被清空;
CFile::modeRead 用于只讀; CFile::modeReadWrite 用于讀寫;
CFile::modeWrite 用于只寫; CFile::modeNoInherit 阻止文件被子進(jìn)程繼承;
返回值:若打開(kāi)成功,返回非0;否則返回0
CFile::Read 從文件中讀一段數(shù)據(jù)到一緩沖區(qū)中
virtual UINT Read(void* lpBuf,UINT nCount);
參數(shù):lpBuf指向用戶定義的緩沖區(qū);nCount為要從文件中讀出的最大字節(jié)數(shù)
返回值:傳輸給緩沖區(qū)的字節(jié)數(shù),可小于nCount所指定的值
CFile::Rename 重命名文件(靜態(tài)函數(shù)),目錄不可重命名
static void PASCAL Rename(LPCTSTR lpszOldName,LPCTSTR lpszNewName);
參數(shù):lpszOldName 舊路徑名
lpszNewName 新路徑名
CFile::Remove 刪除指定文件(靜態(tài)函數(shù)),不可刪除目錄
static void PASCAL Remove(LPCTSTR lpszFileName);
參數(shù):lpszFileName指向刪除文件的路徑名字符串
CFile::Seek 定位當(dāng)前文件指針
virtual LONG Seek(LONG lOff,UINT nFrom);
參數(shù):lOff 指針移動(dòng)的字節(jié)數(shù),為正時(shí),向后移動(dòng),為負(fù)時(shí),向前移動(dòng)
nFrom 指針移動(dòng)方式,可以是下列值之一:
CFile::begin 將文件指針從文件頭移動(dòng)lOff個(gè)字節(jié);
CFile::current 將文件指針從當(dāng)前位置移動(dòng)lOff個(gè)字節(jié);
CFile::end 將文件指針從文件尾移動(dòng)lOff個(gè)字節(jié);
CFile::SeekToBegin 將文件指針設(shè)置到文件頭,相當(dāng)于Seek(0L,CFile::begin)
void SeekToBegin();
CFile::SeekToEnd 將文件指針設(shè)置到文件尾,相當(dāng)于Seek(0L,CFile::end)
DWORD SeekToEnd(); 返回值:文件的字節(jié)長(zhǎng)度
CFile::Write 將數(shù)據(jù)從一緩沖區(qū)寫入文件中
virtual void Write(const void* lpBuf,UINT nCount);
參數(shù):lpBuf指向用戶定義的緩沖區(qū);nCount為要從緩沖區(qū)傳輸?shù)淖止?jié)數(shù)
CFileDialog類:封裝了打開(kāi)和保存文件的標(biāo)準(zhǔn)對(duì)話框
CFileDialog::CFileDialog 構(gòu)造一個(gè)標(biāo)準(zhǔn)Windows文件對(duì)話框?qū)ο?nbsp;
CFileDialog(BOOL bOpenFileDialog,LPCTSTR lpszDefExt=NULL,LPCTSTR lpszFileName=NULL, DWORD dwFlags=OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,LPCTSTR lpszFilter=NULL,CWnd* pParentWnd=NULL);
參數(shù):bOpenFileDialog為TRUE時(shí)構(gòu)造打開(kāi)文件對(duì)話框,為FALSE時(shí)構(gòu)造另存為對(duì)話框;
lpszDefExt指定缺省文件擴(kuò)展名,在對(duì)話框彈出后,若沒(méi)有在文件名框中輸入擴(kuò)展名,則自動(dòng)附加指定的擴(kuò)展名,若lpszDefExt為NULL,則不附加擴(kuò)展名;
lpszFileName指定出現(xiàn)在文件名框中的初始文件名,若為NULL,則無(wú)初始文件名;
dwFlags為定制對(duì)話框的標(biāo)志組合;
lpszFilter指定文件過(guò)濾器
CFileDialog::GetFileExt 檢取對(duì)話框中輸入的文件擴(kuò)展名
CString GetFileExt()const;
CFileDialog::GetFileName 檢取對(duì)話框中輸入的文件名,不包括路徑
CString GetFileName()const;
CFileDialog::GetNextPathName 檢取對(duì)話框中選定的一組文件中的下一個(gè)文件的全路徑
CString GetNextPathName(POSITION& pos)const;
參數(shù):pos 指定位置的POSITION值,執(zhí)行后,為下一項(xiàng)的POSITION值;若已到列表尾,執(zhí)行后為NULL
返回值:文件的全路徑
CFileDialog::GetPathName 檢取對(duì)話框中輸入的文件全路徑
CString GetPathName()const;
CFileDialog::GetStartPosition 獲取列表中第一個(gè)文件路徑名的位置
POSITION GetStartPosition()const;
返回值:列表中第一個(gè)文件路徑名的POSITION值;若列表為空,返回NULL
說(shuō)明:用于多選列表,要求m_ofn.Flags設(shè)置了OFN_ALLOWMULTISELECT標(biāo)志
CFindReplaceDialog類:封裝了標(biāo)準(zhǔn)查找/替換對(duì)話框
CFindReplaceDialog::Create 創(chuàng)建一個(gè)Find或Find/Replace對(duì)話框?qū)ο?/span>
BOOL Create(BOOL bFindDialogOnly,LPCTSTR lpszFindWhat,LPCTSTR lpszReplaceWhat=NULL,DWORD dwFlag=FR_DOWN,CWnd* pParentWnd=NULL);
參數(shù):bFindDialogOnly 為TRUE時(shí),顯示查找對(duì)話框,為FALSE時(shí),顯示查找/替換對(duì)話框;
lpszFindWhat 指定要查找的串的缺省值;
lpszReplaceWhat 指定替換串的缺省值;
dwFlag為標(biāo)志位,用來(lái)定制對(duì)話框,它可以是一個(gè)或多個(gè)標(biāo)志的組合,主要取值如下:
FR_DOWN 如果設(shè)置,對(duì)話框中的“向下查找”單選按鈕被選中,如果沒(méi)有設(shè)置,“向上查找”單選按鈕被選中;
FR_HIDEUPDOWN 不顯示查找方向單選按鈕;
FR_HIDEMATCHCASE 不顯示區(qū)分大小寫復(fù)選按鈕;
FR_HIDEWHOLEWORD 不顯示全字匹配復(fù)選按鈕;
FR_MATCHCASE 使區(qū)分大小寫復(fù)選按鈕處于選中狀態(tài);
FR_WHOLEWORD 使全字匹配復(fù)選按鈕處于選中狀態(tài);
FR_NOMATCHCASE 使區(qū)分大小寫復(fù)選按鈕處于禁止(變灰)狀態(tài);
FR_NOUPDOWN 使查找方向單選按鈕處于禁止(變灰)狀態(tài);
FR_NOWHOLEWORD 使全字匹配復(fù)選按鈕處于禁止(變灰)狀態(tài);
FR_SHOWHELP 在對(duì)話框中顯示一個(gè)幫助按鈕。
pParentWnd 指向父窗口或?qū)僦鞔翱诘闹羔槨?br>
返回值:若創(chuàng)建成功,返回非0值,否則返回0。
CFindReplaceDialog::FindNext 確定用戶是否要查找串的下一個(gè)出現(xiàn)處。
BOOL FindNext()const;
返回值:若用戶單擊查找“下一個(gè)”按鈕,則返回非0值,否則返回0。
CFindReplaceDialog::GetFindString 檢取對(duì)話框中的查找字符串
CString GetFindString()const;
返回值:對(duì)話框中的查找字符串
CFindReplaceDialog::GetNotifier 檢取當(dāng)前查找/替換對(duì)話框的指針
static CFindReplaceDialog* PASCAL GetNotifier(LPARAM lParam);
參數(shù):lParam 傳遞給回調(diào)函數(shù)OnFindReplace()的lParam值
返回值:指向當(dāng)前查找/替換對(duì)話框的指針
CFindReplaceDialog::GetReplaceString 檢取對(duì)話框中的替換字符串
CString GetReplaceString()const;
返回值:對(duì)話框中的替換字符串
CFindReplaceDialog::IsTerminating 檢取對(duì)話框是否終止
BOOL IsTerminating()const;
返回值:若用戶終止對(duì)話框,返回非0值,否則返回0
CFindReplaceDialog::MatchCase 檢取區(qū)分大小寫復(fù)選按鈕狀態(tài)
BOOL MatchCase()const;
返回值:如果區(qū)分大小寫復(fù)選按鈕被選擇,返回非0值,否則返回0
CFindReplaceDialog::MatchWholeWord 檢取全字匹配復(fù)選按鈕狀態(tài)
BOOL MatchWholeWord()const;
返回值:如果全字匹配復(fù)選按鈕被選擇,返回非0值,否則返回0
CFindReplaceDialog::ReplaceAll 確定用戶是否要求全部替換
BOOL ReplaceAll()const;
返回值:如果用戶要求全部替換,返回非0值,否則返回0
CFindReplaceDialog::ReplaceCurrent 確定用戶是否要求替換當(dāng)前選擇串
BOOL ReplaceCurrent()const;
返回值:如果用戶要求替換當(dāng)前選擇串,返回非0值,否則返回0
CFindReplaceDialog::SearchDown 檢取查找方向
BOOL SearchDown()const;
返回值:如果為向下查找,返回非0值;若為向上查找,返回0
CFont類:封裝了Windows圖形設(shè)備接口(GDI)中的字體對(duì)象
CFont::CreatePointFont 創(chuàng)建指定打印字樣和點(diǎn)大小的字體
BOOL CreatePointFont(int nPointSize,LPCTSTR lpszFaceName,CDC*pDC==NULL);
參數(shù):nPointSize請(qǐng)求字體的高度(以十分之一點(diǎn)計(jì));lpszFaceName字體的字樣名
返回值:若成功,返回非0;否則返回0
CFontDialog類:封裝了字體選擇對(duì)話框
CFontDialog::CFontDialog 構(gòu)造一個(gè)CFontDialog對(duì)象
CFontDialog(LPLOGFONT lplfInitial=NULL,DWORD dwFlags=CF_EFFECTS | CF_SCREENFONTS,CDC* pdcPrinter=NULL,CWnd* pParentWnd=NULL);
參數(shù):lplfInitial是一個(gè)指向LOGFONT結(jié)構(gòu)的指針;dwFlags一些標(biāo)志;pdcPrinter指向打印機(jī)設(shè)備環(huán)境的指針;pParentWnd指向該字體對(duì)話框的父窗口的指針
CFontDialog::GetFaceName 獲取選定的字體名
CString GetFaceName()const;
CFontDialog::GetSize 獲取選定的字體大小
int GetSize()const;
CGdiObject類:GDI繪圖工具的基類
CGdiObject::DeleteObject 釋放與連接的GDI對(duì)象相關(guān)的所有系統(tǒng)存儲(chǔ),從內(nèi)存中將其刪除
BOOL DeleteObject();
返回值:若GDI對(duì)象被成功刪除,返回非0;否則返回0
CGdiObject::GetSafeHandle 獲取連接的Windows GDI對(duì)象的句柄
HGDIOBJ GetSafeHandle()const;
返回值:所連接的Windows GDI對(duì)象的句柄,若沒(méi)有連接Windows GDI對(duì)象,則返回NULL
CIPAddressCtrl類:提供了IP地址控件的功能
CIPAddressCtrl::ClearAddress 清除IP地址控件中的內(nèi)容。
void ClearAddress();
CIPAddressCtrl::Create 創(chuàng)建一個(gè)IP地址控件。
BOOL Create(DWORD dwStyle,RECT& rect,CWnd* pParentWnd,UINT nID);
參數(shù):dwStyle 為控件風(fēng)格,可使用窗口風(fēng)格的組合;rect 控件大小和位置;pParentWnd 指向父窗口的指針,不能為NULL;nID 控件的ID。
返回值:若成功,返回非0;否則返回0
CIPAddressCtrl::GetAddress 獲取IP地址控件中的地址值。
int GetAddress(BYTE& nField0,BYTE& nField1,BYTE& nField2,BYTE& nField3);
int GetAddress(DWORD& dwAddress);
第一種形式是把IP地址的4個(gè)域填充到用4個(gè)引用中。
第二種形式是把IP地址填充到1個(gè)長(zhǎng)整數(shù)的引用中。
返回值:IP地址控件中非空域的數(shù)量。
CIPAddressCtrl::IsBlank 判斷IP地址控件中所有域是否為空。
BOOL IsBlank();
返回值:如果IP地址控件的所有域均為空,返回非0值;否則返回0。
CIPAddressCtrl::SetAddress 設(shè)置IP地址控件中的地址值。
void SetAddress(BYTE nField0,BYTE nField1,BYTE nField2,BYTE nField3);
void SetAddress(DWORD dwAddress);
第一種形式是用4個(gè)0~255的整數(shù)分別設(shè)置IP地址各個(gè)域的值。
第二種形式是用1個(gè)長(zhǎng)整數(shù)設(shè)置IP地址值。
返回值:無(wú)
CIPAddressCtrl::SetFieldFocus 把輸入焦點(diǎn)設(shè)置在指定的域中。
void SetFieldFocus(WORD nField);
參數(shù):nField 取值為0~3,如果大于3,則焦點(diǎn)設(shè)置到第一個(gè)空域中,若所有域均非空,則焦點(diǎn)設(shè)置在第一個(gè)域中。
返回值:無(wú)
CIPAddressCtrl::SetFieldRange 設(shè)置指定域中數(shù)值的取值范圍。
void SetFieldRange(int nField,BYTE nLower,BYTE nUpper);
參數(shù):nField 域索引,取值0~3;nLower 域的下限值;nUpper:域的上限值。
返回值:無(wú)
CImageList類:管理大小相同的圖標(biāo)或位圖集
CImageList::Add 在影像列表中添加一個(gè)或多個(gè)影像或圖標(biāo)
int Add(CBitmap* pbmImage,CBitmap* pbmMark);
參數(shù):pbmImage 指向包含影像位圖的指針;pbmMark 指向包含屏蔽位圖的指針,若沒(méi)有屏蔽,此參數(shù)被忽略。
返回值:若成功,返回第一個(gè)影像的以0為基的索引,否則返回-1。
CImageList::Create 構(gòu)造一個(gè)CImageList對(duì)象
BOOL Create(int cx,int cy,BOOL bMark,int nInitial,int nGrow);
參數(shù):cx、cy為影像大小,以像素為單位;bMark 若影像包含屏蔽則為TRUE,否則為FALSE;nInitial包含的影像數(shù);nGrow當(dāng)需要改變列表大小時(shí),允許擴(kuò)大到的影像數(shù)。
返回值:若成功,返回非0;否則返回0
CMenu類:封裝應(yīng)用程序菜單欄和彈出式菜單
CMenu::DestoryMenu 撤銷菜單及所用的Windows資源
BOOL DestoryMenu();
返回值:若菜單撤銷成功,則返回非0值;否則返回0。
說(shuō)明:撤銷之前需用Detach()將菜單與CMenu對(duì)象斷開(kāi)連接。
CMenu::Detach 將一菜單與CMenu對(duì)象斷開(kāi)連接
HMENU Detach();
返回值:若函數(shù)成功,返回菜單的句柄;否則返回NULL。
CMenu::GetSubMenu 檢取一個(gè)菜單中的彈出式子菜單對(duì)象
CMenu* GetSubMenu(int nPos)const;
參數(shù):nPos 彈出式子菜單在父菜單中的位置,從0開(kāi)始算起
返回值:若給定位置存在一個(gè)彈出式子菜單,返回指向子菜單對(duì)象的指針;否則返回NULL。
CMenu::InsertMenu 在菜單中插入一個(gè)新的菜單項(xiàng)
BOOL InsertMenu(UINT nPosition,UINT nFlag,UINT nIDNewItem=0,LPCTSTR lpszNewItem=NULL);
BOOL InsertMenu(UINT nPosition,UINT nFlag,UINT nIDNewItem,const CBitmap* pBmp);
參數(shù):nPosition 指定要插入的菜單項(xiàng)的位置
nFlag 指出nPosition的解釋和新菜單項(xiàng)的狀態(tài)
對(duì)nPosition的解釋可取下面值之一:
MF_BYCOMMAND:要求nPosition為已存在的一個(gè)菜單項(xiàng)的ID號(hào)
MF_BYPOSITION:要求nPosition為已存在的一個(gè)菜單項(xiàng)的位置
新菜單項(xiàng)狀態(tài)可取以下值:
MF_CHECKED:在菜單項(xiàng)前加一個(gè)檢測(cè)標(biāo)志
MF_DISABLED:使菜單項(xiàng)無(wú)效,但菜單項(xiàng)不變灰
MF_GRAYED:使菜單項(xiàng)無(wú)效,且菜單項(xiàng)變灰
MF_OWNERDRAW:指定菜單項(xiàng)是用戶自繪的項(xiàng)
MF_POPUP:指定菜單項(xiàng)有與之相關(guān)聯(lián)的彈出菜單
MF_SEPARATOR:繪制一條水平分隔線,僅能用于彈出菜單項(xiàng)
MF_STRING:指定菜單項(xiàng)為一個(gè)字符串
nIDNewItem 指定新菜單項(xiàng)的ID號(hào)
lpszNewItem 新菜單項(xiàng)的文本
pBmp 指向?qū)⒆鳛椴藛雾?xiàng)使用的CBitmap對(duì)象
插入時(shí)在指定的菜單項(xiàng)前面插入
CMenu::LoadMenu 加載一個(gè)菜單資源,并將其連接到CMenu對(duì)象上
BOOL LoadMenu(LPCTSTR lpszResourceName);
BOOL LoadMenu(UINT nIDResource);
參數(shù):lpszResourceName 指向一個(gè)以NULL結(jié)尾的字符串,其中包含要加載的菜單資源名。
nIDResource 指定要加載的菜單資源的菜單ID。
返回值:若菜單資源加載成功,則返回非0值;否則返回0。
CMenu::RemoveMenu 刪除指定菜單項(xiàng)
BOOL RemoveMenu(UINT nPosition,UINT nFlags);
參數(shù):nPosition 指定要?jiǎng)h除的菜單項(xiàng)
nFlag 指出nPosition的解釋,參照InsertMenu()函數(shù)
返回值:若成功,返回非0值;否則返回0。
CMenu::TrackPopupMenu 在指定位置顯示一個(gè)彈出式菜單,并跟蹤該菜單的選擇
BOOL TrackPopupMenu(UINT nFlag,int x,int y,CWnd* pWnd,LPCRECT lpRect=NULL);
參數(shù):nFlags 指定屏幕位置標(biāo)志和鼠標(biāo)按鈕標(biāo)志;
屏幕位置標(biāo)志可以是下列值之一:
TPM_CENTERALIGN 定位菜單相對(duì)于x指定的坐標(biāo)水平居中;
TPM_LEFTALIGN 定位菜單使其左邊對(duì)齊x指定的坐標(biāo);
TPM_RIGHTALIGN 定位菜單使其右邊對(duì)齊x指定的坐標(biāo);
鼠標(biāo)按鈕標(biāo)志可以是下列值之一:
TPM_LEFTBUTTON 使彈出菜單在單擊鼠標(biāo)左鍵時(shí)彈出;
TPM_RIGHTBUTTON 使彈出菜單在單擊鼠標(biāo)右鍵時(shí)彈出。
x、y 彈出式菜單在屏幕中的位置(屏幕坐標(biāo));
pWnd 指向擁有此菜單的窗口;
lpRect 指向一個(gè)RECT結(jié)構(gòu)或CRect對(duì)象,設(shè)定菜單尺寸。
CPen類:封裝了Windows圖形設(shè)備接口(GDI)中的畫筆對(duì)象
CPen::CreatePen 用指定風(fēng)格、寬度和顏色初始化一個(gè)畫筆
BOOL CreatePen(int nPenStyle,int nWidth,COLORREF crColor);
參數(shù):nPenStyle指定畫筆的風(fēng)格,取值如下:
PS_SOLID:實(shí)線;
PS_DASH:虛線;
PS_DOT:點(diǎn)線;
PS_DASHDOT:點(diǎn)劃線;
PS_DASHDOTDOT:雙點(diǎn)劃線;
PS_NULL:空畫筆;
PS_ENSIDEFRAME:內(nèi)框線。
nWidth為畫筆的寬度,單位為像素;crColor指定畫筆的顏色
返回值:若成功,返回非0;否則返回0
CPoint類:操作CPoint和POINT結(jié)構(gòu)
CPoint::CPoint 構(gòu)造一個(gè)CPoint對(duì)象
CPoint();
CPoint(int initX,int initY);
CPoint(POINT initPt);
CPoint(SIZE initSize);
CPoint(DWORD dwPoint);
參數(shù):initX 初始化CPoint的X成員。initY 初始化CPoint的Y成員。
initPt 初始化CPoint的一個(gè)POINT結(jié)構(gòu)或CPoint對(duì)象。
initSize 用SIZE結(jié)構(gòu)中的cx和cy初始化CPoint的X成員和Y成員。
dwPoint 設(shè)置X成員為參數(shù)的低位字,Y成員為參數(shù)的高位字。
若未給定參數(shù),則X和Y成員不被初始化
CRect類:封裝了一個(gè)矩形區(qū)域及相關(guān)操作
CRect::BottomRight 求CRect對(duì)象的右下角坐標(biāo)
CPoint& BottomRight();
返回值:對(duì)CRect對(duì)象右下角點(diǎn)的一個(gè)引用
CRect::CenterPoint 求CRect對(duì)象的中心點(diǎn)
CPoint CenterPoint()const;
返回值:CRect對(duì)象的中心點(diǎn)坐標(biāo)
CRect::CopyRect 將一個(gè)矩形復(fù)制到CRect對(duì)象中
void CopyRect(LPCRECT lpScrRect)
參數(shù):lpScrRect 指向源矩形的RECT結(jié)構(gòu)或CRect對(duì)象
返回值:無(wú)
CRect::Height 求CRect對(duì)象的高度
int Height()const;
返回值:CRect對(duì)象的高度
CRect::PtInRect 判斷指定點(diǎn)是否在CRect對(duì)象的區(qū)域內(nèi)
BOOL PtInRect(POINT point)const;
參數(shù):point是一個(gè)POINT結(jié)構(gòu)或CPoint對(duì)象
返回值:指定點(diǎn)在CRect對(duì)象內(nèi),返回非0值,否則返回0
CRect::SetRect 設(shè)置CRect對(duì)象的值
void SetRect(int x1,int y1,int x2, int y2);
參數(shù):x1、y1為左上角坐標(biāo),x2、y2為右下角坐標(biāo)
CRect::Width 求CRect對(duì)象的寬度
int Width()const;
返回值:CRect對(duì)象的寬度
CRgn類:封裝用于操作窗口中的橢圓、多邊形或者不規(guī)則區(qū)域的GDI區(qū)域
CRgn::CreateEllipticRg 創(chuàng)建一個(gè)橢圓區(qū)域
BOOL CreateEllipticRg(int x1,int y1,int x2,int y2);
參數(shù):x1、y1 該橢圓的限定矩形的左上角的邏輯坐標(biāo);
x2、y2 該橢圓的限定矩形的右下角的邏輯坐標(biāo)。
返回值:若成功,返回非0,否則返回0
CRgn::CreatePolygonRgn 創(chuàng)建一個(gè)多邊形區(qū)域
BOOL CreatePolygonRgn(LPPOINT lpPoints,int nCount,int nMode);
參數(shù):lpPoints指向一個(gè)POINT結(jié)構(gòu)的數(shù)組或CPoint對(duì)象的數(shù)組;nCount是數(shù)組中元素個(gè)數(shù);nMode指定區(qū)域的填充方式,可以為ALTERATE或WINDING
返回值:若成功,返回非0,否則返回0
CSize類:用于表示相對(duì)坐標(biāo)或位置
CSize::CSize 構(gòu)造函數(shù),生成一個(gè)CSIZE對(duì)象并可以設(shè)置初值
CSize();
CSize(int initCX,int initCY);
CSize(SIZE initSize);
CSize(POINT initPt);
CSize(DWORD dwSize);
參數(shù):可以用不同的方法初始化CSize對(duì)象的cx成員和cy成員。
其中 dwSize 是一個(gè)DWORD值,雙字中的低位字設(shè)置cx成員,高位字設(shè)置cy成員
操作符 ==、!=、+、-、+=、-=
CSpinButtonCtrl類:旋轉(zhuǎn)控件Spin的控制類
CSpinButtonCtrl::GetPos 獲取旋轉(zhuǎn)控件的當(dāng)前位置
int GetPos()const;
返回值:當(dāng)前位置(用低位字表示),若有錯(cuò)誤產(chǎn)生,高位字為非0
CSpinButtonCtrl::SetBuddy 設(shè)置旋轉(zhuǎn)控件的伙伴窗口
CWnd* SetBuddy(CWnd* pWndButton);
參數(shù):pWndButton是一個(gè)指向新伙伴窗口的指針
返回值:一個(gè)指向以前伙伴窗口的指針
CSpinButtonCtrl::SetPos 設(shè)置控件的位置
int SetPos(int nPos);
參數(shù):nPos為控件的新位置,該值必須在控件指定的上下限范圍內(nèi)
返回值:以前位置
CSpinButtonCtrl::SetRange 設(shè)置控件的范圍
void SetRange(int nLower,int nUpper);
參數(shù):nLower、nUpper為該控件的上下限
CStatusBar類:狀態(tài)欄窗口的基類
CStatusBar::SetPaneInfo 為指定窗格設(shè)置新的ID,風(fēng)格和寬度
void SetPaneInfo(int nIndex,UINT nID,UINT nStyle,int cxWidth);
參數(shù):nIndex 窗格索引值,nID 窗格新ID值,nStyle 窗格的新風(fēng)格,cxWidth 窗格的新寬度。
CStatusBar::SetPaneText 為指定窗格設(shè)置文本
BOOL SetPaneText(int nIndex,LPCTSTR lpszNewText,BOOL bUpdate=TRUE);
參數(shù):nIndex 窗格索引值,lpszNewText 新的窗格文本,bUpdate 若為TRUE,則設(shè)置后窗格將無(wú)效
返回值:若成功,返回非0;否則返回0
CString類:處理字符串
CString::Compare 比較字符串
int Compare(LPCTSTR lpsz)const;
參數(shù):lpsz 用于比較的另一個(gè)字符串
返回值:字符串相等,返回0;CString對(duì)象小于lpsz,返回-1;否則返回1。
CString::CompareNoCase 不區(qū)分大小寫比較字符串
int CompareNoCase(LPCTSTR lpsz)const;
參數(shù):lpsz 用于比較的另一個(gè)字符串
返回值:字符串相等,返回0;CString對(duì)象小于lpsz,返回-1;否則返回1。
CString::Empty 清空字符串,并根據(jù)需要釋放內(nèi)存
void Empty();
CString::Format 格式化一個(gè)CString對(duì)象
void Format(LPCTSTR lpszFormat,...);
參數(shù):lpszFormat 格式字符串
功能:用格式化數(shù)據(jù)定義一個(gè)CString對(duì)象。這里把整數(shù)等其它類型轉(zhuǎn)換為字符串。
CString::GetAt 獲取串中的指定字符
TCHAR GetAt(int nIndex);
參數(shù):nIndex 串中以0為基值索引值,不得小于0及大于串長(zhǎng)。
返回值:由索引值指定的字符。
說(shuō)明:該函數(shù)常用[]運(yùn)算符替代。
CString::GetLength 求字符串中字節(jié)數(shù)
int GetLength()const;
返回值:字符串中字節(jié)數(shù),該計(jì)數(shù)值不計(jì)NULL結(jié)束符
CString::GetBuffer 為CString對(duì)象申請(qǐng)內(nèi)部字符緩沖區(qū)
LPTSTR GetBuffer(int nMinBufLength);
參數(shù):nMinBufLength 指出字符緩沖區(qū)的最小大小值
返回值:指向該對(duì)象的以NULL結(jié)束的字符緩沖區(qū)的指針
CString::IsEmpty 測(cè)試字符串是否為空
BOOL IsEmpty();
返回值:若字符串為空,返回TRUE,否則返回FALSE
CString::Left 從串的前面提取子字符串
CString Left(int nCount)const;
參數(shù):nCount為提取的字符數(shù)
返回值:抽取的子字符串的一個(gè)拷貝,可能為空
CString::LoadString 從Windows資源中加載一個(gè)已存在的CString對(duì)象
BOOL LoadString(UINT nID);
參數(shù):nID Windows字符串資源ID
返回值:若加載資源成功,返回非0;否則返回0
說(shuō)明:nID標(biāo)識(shí)的字符串最大長(zhǎng)度為255個(gè)字符
CString::MakeLower 將CString對(duì)象轉(zhuǎn)換為一個(gè)小寫字符串
void MakeLower();
CString::MakeReverse 逆向CString對(duì)象中字符的次序
void MakeReverse();
CString::MakeUpper 將CString對(duì)象轉(zhuǎn)換為一個(gè)大寫字符串
void MakeUpper();
CString::Mid 提取子字符串
CString Mid(int nFirst,int nCount)const;
參數(shù):nFirst提取的起始位置;nCount提取的字符數(shù),若未指定,則提取字符串的剩余部分
返回值:抽取的子字符串的一個(gè)拷貝,可能為空
CString::ReleaseBuffer 釋放由GetBuffer分配的多余緩沖區(qū)
void ReleaseBuffer(int nNewLength=-1);
參數(shù):nNewLength 字符串對(duì)象的實(shí)際長(zhǎng)度(不含NULL)
功能:把CString對(duì)象的大小設(shè)置為nNewLength指示的大小;若nNewLength為-1,則設(shè)置為該字符串到NULL為止的長(zhǎng)度。
CString::Right 從串的后面提取子字符串
CString Right(int nCount)const;
參數(shù):nCount為提取的字符數(shù)
返回值:抽取的子字符串的一個(gè)拷貝,可能為空
CString::SetAt 設(shè)置串中的指定位置的字符
void SetAt(int nIndex,TCHAR ch);
參數(shù):nIndex 串中以0為基值索引值,不得小于0。 ch:寫入的字符,不得為'\0'。
說(shuō)明:若索引值超出字符串的邊界,則將擴(kuò)大字符串。
CStringList類:支持CString對(duì)象的列表
列表元素必須通過(guò)POSITION值進(jìn)行訪問(wèn),POSITION類型的變量是列表的一個(gè)鍵,與索引不同,程序不可操作POSITION值。
CStringList::AddTail 將一個(gè)元素或元素列表增加到該表表尾
POSITION AddTail(LPCTSTR newElement);
POSITION AddTail(const CString& newElement);
POSITION AddTail(CStringList* pNewList);
參數(shù):newElement指示增加到列表中的元素;pNewList指向另一個(gè)CStringList列表
返回值:插入元素的POSITION值
CStringList::FindIndex 獲取由索引值指定的元素的位置
POSITION FindIndex(int nIndex)const;
參數(shù):nIndex 要查找的列表元素的索引值(基于0,相當(dāng)于下標(biāo))
返回值:索引值所對(duì)應(yīng)的元素位置,若nIndex過(guò)大或?yàn)樨?fù),則返回NULL
CStringList::GetAt 獲取給定位置處的元素
CString GetAt(POSITION position);
CString& GetAt(POSITION position);
參數(shù):position 元素位置
返回值:元素值或元素的引用
CStringList::GetCount 求列表中元素個(gè)數(shù)
int GetCount()const; 返回值:列表中元素個(gè)數(shù)
CStringList::GetHeadPosition 獲取列表首部元素的位置
POSITION GetHeadPosition()const;
返回值:表頭元素的POSITION值,若列表為空,則返回NULL
CStringList::GetNext 獲取下一個(gè)元素
CString GetNext(POSITION& rPosition);
CString& GetNext(POSITION& rPosition);
參數(shù):rPosition 為上一次訪問(wèn)時(shí)的元素位置,當(dāng)GetNext執(zhí)行后,被設(shè)置為列表下一項(xiàng)的POSITION值。 返回值:元素值或元素的引用
CStringList::RemoveAll 刪除列表中所有元素,并釋放關(guān)聯(lián)的內(nèi)存
void RemoveAll();
CWinApp類:派生的程序?qū)ο蟮幕?nbsp;
CWinApp::EnableShellOpen 允許用戶從Windows文件管理器中打開(kāi)數(shù)據(jù)文件
void EnableShellOpen();
說(shuō)明:通常從InitInstace函數(shù)的代碼中允許程序在文件管理器中雙擊文件時(shí)打開(kāi)該數(shù)據(jù)文件
CWinApp::ParseCommandLine 分析命令行中的專用參數(shù)和標(biāo)志
void ParseCommandLine(CCommandLineInfo& rCmdInfo);
參數(shù):rCmdInfo 到一個(gè)CCommandLineInfo對(duì)象的引用
CWinApp::RegisterShellFileTypes 用Windows文件管理注冊(cè)程序所有文檔類型
void RegisterShellFileTypes(BOOL bCompat=FALSE);
CWnd類:提供所有窗口類的基本函數(shù)
CWnd::CenterWindow 相對(duì)于指定窗口的中心定位本窗口
void CenterWindow(CWnd* pAlternateOwner=NULL);
pAlternateOwner 另一個(gè)窗口指針,若為NULL,則相對(duì)于父窗口定位
CWnd::ClientToScreen 將一個(gè)點(diǎn)或一個(gè)矩形的客戶坐標(biāo)轉(zhuǎn)換為屏幕坐標(biāo)
void ClientToScreen(LPPOINT lpPoint)const;
void ClientToScreen(LPRECT lpRect)const;
參數(shù):lpPoint 指向被轉(zhuǎn)換點(diǎn)的CPoint對(duì)象或POINT結(jié)構(gòu)
lpRect 指向被轉(zhuǎn)換矩形的CRect對(duì)象或RECT結(jié)構(gòu)
CWnd::EnableWindow 允許或禁止鼠標(biāo)和鍵盤輸入
BOOL EnableWindow(BOOL bEnable=TRUE);
參數(shù):bEnable為TRUE,窗口允許鼠標(biāo)和鍵盤輸入;為FALSE,窗口禁止鼠標(biāo)和鍵盤輸入。返回值:原先為禁止,返回非0;否則返回0
CWnd::GetCapture 獲取捕獲鼠標(biāo)的窗口
static CWnd* PASCAL GetCapture();
返回值:捕獲鼠標(biāo)的窗口的指針,任何時(shí)刻僅有一個(gè)窗口擁有鼠標(biāo)捕獲
CWnd::GetClientRect 獲取CWnd客戶區(qū)的尺寸
void GetClientRect(LPRECT lpRect)const;
參數(shù):lpRect指向接收客戶區(qū)坐標(biāo)的RECT結(jié)構(gòu)或CRect對(duì)象,其中的left和top成員將為0,right和bottom成員保存該窗口的寬度和高度
CWnd::GetDlgItem 獲取指向給定控件或子窗口的指針
CWnd* GetDlgItem(int nID)const;
參數(shù):nID為控件或子窗口的ID值。
返回值:指向給定控件或子窗口的指針;
CWnd::GetFocus 獲取擁有輸入焦點(diǎn)的窗口
static CWnd* PASCAL GetFocus();
返回值:擁有輸入焦點(diǎn)的窗口的指針,若沒(méi)有擁有焦點(diǎn)的窗口,返回NULL
CWnd::GetMenu 獲取該窗口的菜單的指針
CMenu* GetMenu()const;
返回值:若窗口無(wú)菜單,返回NULL;否則返回菜單對(duì)象的指針
CWnd::GetParent 獲取父窗口指針
CWnd* GetParent()const;
返回值:若成功,返回指向父窗口的指針;否則返回NULL
CWnd::GetStyle 獲取窗口的風(fēng)格
DWORD GetStyle()const;返回值:窗口的風(fēng)格
CWnd::GetWindowRect 獲取窗口的屏幕坐標(biāo)
void GetWindowRect(LPRECT lpRect)const;
參數(shù):lpRect 指向一個(gè)CRect對(duì)象或RECT結(jié)構(gòu),用來(lái)接收窗口的邊界矩形坐標(biāo)
CWnd::GetWindowText 獲取窗口的標(biāo)題文本
int GetWindowText(LPCTSTR lpszStringBuf,int nMaxCount)count;
參數(shù):lpszStringBuf指向接收窗口標(biāo)題文本的字符串緩沖區(qū),nMaxCount指定可拷貝的最大字符數(shù)。返回值:字符串長(zhǎng)度
CWnd::Invalidate 使CWnd的整個(gè)客戶區(qū)無(wú)效
void Invalidate(BOOL bErase=TRUE);
參數(shù):bErase為TRUE則刪除更新區(qū)域的背景,為FALSE則不刪除背景
CWnd::InvalidateRect 使CWnd的客戶區(qū)中的矩形區(qū)域無(wú)效
void InvalidateRect(LPCRECT lpRect,BOOL bErase=TRUE);
參數(shù):lpRect指示添加到更新區(qū)域的矩形,bErase為TRUE則刪除更新區(qū)域的背景,為FALSE則不刪除背景
CWnd::MessageBox 創(chuàng)建并顯示一個(gè)提示對(duì)話框
int MessageBox(LPCTSTR lpszText,LPCTSTR lpszCaption=NULL,UINT nType=MB_OK);
參數(shù):lpszText指示要顯示的字符串;lpszCaption指示提示對(duì)話框的標(biāo)題字符串;nType為彈出提示框的風(fēng)格,此參數(shù)可以為下列標(biāo)志組中標(biāo)志的組合。
指定下列標(biāo)志中的一個(gè)來(lái)設(shè)置消息框中的按鈕,標(biāo)志的含義如下。
MB_ABORTRETRYIGNORE:消息框含有三個(gè)按鈕:Abort,Retry和Ignore。
MB_OK:消息框含有一個(gè)按鈕:OK。這是缺省值。
MB_OKCANCEL:消息框含有兩個(gè)按鈕:OK和Cancel。
MB_RETRYCANCEL:消息框含有兩個(gè)按鈕:Retry和Cancel。
MB_YESNO:消息框含有兩個(gè)按鈕:Yes和No。
MB_YESNOCANCEL:消息框含有三個(gè)按鈕:Yes,No和Cancel。
指定下列標(biāo)志中的一個(gè)來(lái)設(shè)置消息框中顯示的圖標(biāo):標(biāo)志的含義如下。
MB_ICONEXCLAMATION:
MB_ICONWARNING:一個(gè)驚嘆號(hào)出現(xiàn)在消息框。
MB_ICONINFORMATION:
MB_ICONASTERISK一個(gè)圓圈中小寫字母i組成的圖標(biāo)出現(xiàn)在消息框。
MB_ICONOUESTION:一個(gè)問(wèn)題標(biāo)記圖標(biāo)出現(xiàn)在消息框。
MB_ICONSTOP:
MB_ICONERROR:
MB_ICONHAND:一個(gè)停止消息圖標(biāo)出現(xiàn)在消息框。
指定下列標(biāo)志中的一個(gè)來(lái)指示缺省的按鈕:標(biāo)志的含義如下。
MB_DEFBUTTON1:第一個(gè)按鈕為缺省按鈕。這是缺省值。
MB_DEFSUTTON2;第二個(gè)按鈕為缺省按鈕。
MB_DEFBUTTON3:第三個(gè)按鈕為缺省按鈕。
返回值:若成功,返回非0;否則返回0
CWnd::ModifyStyle 修改窗口風(fēng)格
BOOL ModifyStyle(DWORD dwRemove,DWORD dwAdd,UINT nFlags=0);
參數(shù):dwRemove指定要?jiǎng)h除的窗口風(fēng)格;dwAdd指定要添加的窗口風(fēng)格;nFlags傳遞到SetWindowPos的標(biāo)志,若不調(diào)用SetWindowPos,應(yīng)為0,若不為0,則調(diào)用SetWindowPos并重畫窗口
CWnd::MoveWindow 改變窗口的位置和大小
void MoveWindow(int x,int y,int nWidth,int nHeight,BOOL bRepaint=TRUE);
void MoveWindow(LPCRECT lpRect,BOOL bRepaint=TRUE);
參數(shù):x,y為新位置的左上角坐標(biāo);nWidth,int nHeight指定窗口新的寬度和高度;bRepaint為TRUE時(shí),重繪窗口,為FALSE不繪制;lpRect指定新的大小和位置的CRect對(duì)象或RECT結(jié)構(gòu)
CWnd::ReleaseCapture 釋放鼠標(biāo)捕獲,讓其它窗口可以接收鼠標(biāo)輸入
ReleaseCapture();
CWnd::ScreenToClient 將一個(gè)點(diǎn)或一個(gè)矩形的屏幕坐標(biāo)轉(zhuǎn)換為客戶坐標(biāo)
void ScreenToClient(LPPOINT lpPoint)const;
void ScreenToClient(LPRECT lpRect)const;
參數(shù):lpPoint 指向被轉(zhuǎn)換點(diǎn)的CPoint對(duì)象或POINT結(jié)構(gòu)
lpRect 指向被轉(zhuǎn)換矩形的CRect對(duì)象或RECT結(jié)構(gòu)
CWnd::SetCapture 捕獲鼠標(biāo)
CWnd* SetCapture();
返回值:原來(lái)捕獲鼠標(biāo)的窗口指針
說(shuō)明:捕獲鼠標(biāo)后,無(wú)論光標(biāo)位于何處,所有鼠標(biāo)輸入都發(fā)送給當(dāng)前的CWnd對(duì)象。
CWnd::SetFocus 設(shè)置輸入焦點(diǎn)
CWnd* SetFocus();
返回值:原來(lái)?yè)碛休斎虢裹c(diǎn)的窗口指針,若沒(méi)有這類窗口,返回NULL
CWnd::SetFont 將窗口的字體設(shè)置為指定字體
void SetFont(CFont* pFont,BOOL bRedraw=TRUE)
參數(shù):pFont指向新字體;bRedraw 若為TRUE,則重畫該CWnd對(duì)象
CWnd::SetWindowPos 改變窗口的大小、位置和Z次序
BOOL SetWindowPos(const CWnd* pWndInsertAfter,int x,int y,int cx,int cy,UINT nFlags);
參數(shù):pWndInsertAfter 用來(lái)調(diào)整窗口Z次序,一般設(shè)為NULL;
x、y:窗口新位置;cx、cy:窗口新寬度和高度;
nFlags常用取值:
SWP_NOZORDER:忽略第一個(gè)參數(shù),維持次序;
SWP_NOMOVE:忽略x、y,維持位置不變;
SWP_NOSIZE:忽略cx、cy,維持大小不變;
返回值:若成功,返回非0;否則返回0
CWnd::SetWindowText 設(shè)置窗口標(biāo)題,若該窗口為控件,則設(shè)置其中的文本
void SetWindowText(LPCTSTR lpszString);
參數(shù):lpszString指向用作新標(biāo)題的字符串
CWnd::ShowWindow 設(shè)置窗口的可見(jiàn)性
BOOL ShowWindow(int nCmdShow);
參數(shù):nCmdShow 指明如何顯示該窗口,取值為下列之一:
SW_HIDE 隱藏窗口并將活動(dòng)性傳遞給另一窗口;
SW_MINIMIZE 最小化窗口并激活系統(tǒng)窗口列表中的頂層窗口;
SW_RESTORE 激活并顯示窗口,若已最小化或最大化,則恢復(fù)其原大小和位置;
SW_SHOW 激活窗口并以其當(dāng)前大小和位置顯示窗口;
SW_SHOWMAXIMIZED 激活窗口并最大化顯示窗口;
SW_SHOWMINIMIZED 激活窗口并顯示為一個(gè)圖標(biāo);
SW_SHOWMINNOACTIVE 將窗口顯示為一個(gè)圖標(biāo),當(dāng)前窗口仍然是活動(dòng)的;
SW_SHOWNA 以當(dāng)前狀態(tài)顯示窗口,當(dāng)前窗口仍然是活動(dòng)的;
SW_SHOWNOACTIVATE 以最近大小和位置顯示窗口,當(dāng)前窗口仍然是活動(dòng)的;
SW_SHOWNORMAL 激活并顯示窗口,若為最小化或最大化窗口,則恢復(fù)原大小和位置
返回值:若該窗口原可見(jiàn),返回非0;若該窗口原隱藏,返回0
CWnd::UpdateData 設(shè)置一個(gè)對(duì)話框的數(shù)據(jù)或獲取有效的對(duì)話框數(shù)據(jù)
BOOL UpdateData(BOOL bSaveAndValidate=TRUE);
參數(shù):bSaveAndValidate為FALSE,設(shè)置對(duì)話框的數(shù)據(jù);為TRUE則獲取對(duì)話框數(shù)據(jù)
返回值:若成功,返回非0;否則返回0
CWnd::UpdateWindow 若更新區(qū)域不空,該成員函數(shù)通過(guò)發(fā)送一條WM_PAINT消息以更新客戶區(qū)
void UpdateWindow();
API函數(shù)
GetPrivateProfileInt 從ini文件中讀取整數(shù)值
UINT GetPrivateProfileInt(LPCTSTR lpAppName,LPCTSTR lpKeyName,INT nDefault,LPCSTR lpFileName);
lpAppName為段名,lpKeyName為項(xiàng)名,nDefault為找不到該項(xiàng)時(shí)返回的默認(rèn)值,lpFileName為ini文件名
返回值:若成功,返回指定項(xiàng)后的整數(shù)值,若該項(xiàng)不存在,返回nDefault的值
GetPrivateProfileString 從ini文件中讀取字符串
DWORD GetPrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCTSTR lpDefault,LPTSTR lpReturnedString,DWORD nSize,LPCTSTR lpFileName);
lpAppName為段名,lpKeyName為項(xiàng)名,lpDefault為找不到該項(xiàng)時(shí)返回的默認(rèn)值,lpReturnedString指向接收結(jié)果的字符串緩沖區(qū),nSize為緩沖區(qū)長(zhǎng)度,lpFileName為ini文件名
執(zhí)行結(jié)果:若成功,lpReturnedString指示的串中為讀出的項(xiàng)值,若該項(xiàng)不存在,lpReturnedString中為lpDefault的值
WritePrivateProfileString 把字符串寫入ini文件
BOOL WritePrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCTSTR lpString,LPCTSTR lpFileName);
lpAppName為段名,lpKeyName為項(xiàng)名,lpString為寫入的字符串,lpFileName為ini文件名
返回值:若成功,返回true,否則返回false
若寫入時(shí),該ini文件不存在,則這個(gè)函數(shù)會(huì)自動(dòng)建立這個(gè)文件,并建立相應(yīng)的段和項(xiàng)。
以上轉(zhuǎn)自:http://blog.csdn.net/zhmxy555/article/details/7326776
聯(lián)系客服