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