常用MFC和API函数解读.docx
《常用MFC和API函数解读.docx》由会员分享,可在线阅读,更多相关《常用MFC和API函数解读.docx(34页珍藏版)》请在冰豆网上搜索。
常用MFC和API函数解读
常用MFC和API函数
索引
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,UINTnMode,intnBufSize=4096,void*lpBuf=NULL);
参数:
pFile指向CFile对象的指针,这个CFile对象是数据的最终源或目的;
nMode是标志,取值为CArchive:
:
load时,从文档中加载数据(要求CFile读许可),取值为CArchive:
:
store时,将数据存入文档(要求CFile写许可);
nBufSize指定内部文件缓冲区的大小(按字节计);
lpBuf指向大小为nBufSize的缓冲区,若未指定,则从局部堆中分配一缓冲区,并在该对象被删除时释放该缓冲区,但不释放用户提供的缓冲区。
CArchive:
:
Close关闭档案,清除缓冲区中剩余数据,断开文件与档案的连接
voidClose();
操作符:
<<存储指定的对象到档案(写),一行可以使用多个析取操作符
>>从档案中加载指定的对象(读),一行可以有多个插入操作符
CBitmap类:
封装Windows的图形设备接口(GDI)位图
CBitmap:
:
LoadBitmap加载位图资源
BOOLLoadBitmap(UINTnIDResource);
BOOLLoadBitmap(LPCTSTRlpszResourceName);
参数:
nIDResource位图资源ID号;lpszResourceName位图资源名
返回值:
若成功,返回非0;否则返回0
CBrush类:
封装图形设备接口(GDI)中的画刷
CBrush:
:
CreateSolidBrush用指定颜色初始化一个单色画刷
BOOLCreateSolidBrush(COLORREFcrColor);
参数:
crColor画刷颜色
返回值:
若成功,返回非0;否则返回0
CButton类:
提供Windows按钮控件的功能
CButton:
:
Create创建一个CButton对象
BOOLCreate(LPCTSTRlpszCaption,DWORDdwStyle,constRECT&rect,CWnd*pParentWnd,UINTnID);
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对象,由框架调用该函数
virtualvoidDrawItem(LPDRAWITEMSTRUCTlpDrawItemStruct);
参数:
lpDrawItemStruct指向包含绘制项信息和要求类型的LPDRAWITEMSTRUCT结构的长指针
CButton:
:
SetCheck设置或复位单选按钮和复选按钮的选择状态
voidSetCheck(intnCheck);
参数:
nCheck指定设置的状态,0为未选择,1为选中,2为不确定
CByteArray类:
该类支持动态的字节数组
CByteArray:
:
GetAt获取指定下标处的数值,可以用运算符[]代替
BYTEGetAt(intnIndex)const;
参数:
nIndex数组下标,必须为有效值
返回值:
指定下标处的数组元素
CByteArray:
:
GetData访问数组元素
BYTE*GetData();
返回值:
指向数组元素的指针
CByteArray:
:
GetSize获取数组中元素个数
intGetSize()const;
返回值:
数组的大小,比最大下标大1
CByteArray:
:
RemoveAll删除数组中所有元素
voidRemoveAll();
CByteArray:
:
SetAt设置指定下标处的数值,不扩充数组
voidSetAt(intnIndex,BYTEnewElement);
参数:
nIndex数组下标,必须为有效值;newElement存入数组的新元素值
CByteArray:
:
SetAtGrow设置指定下标处的数值,需要时可自动扩充数组
voidSetAtGrow(intnIndex,BYTEnewElement);
参数:
nIndex数组下标,大于等于0;newElement存入数组的新元素值
CByteArray:
:
SetSize设置数组的大小,并基于需要分配内存;若新值小于原数组,则截断旧数组,释放所有未用内存。
voidSetSize(intnNewSize,intnGrowBy=-1);
参数:
nNewSize新数组的大小,必须大于等于0;nGrowBy扩大数组时至少要分配的元素数
CCmdUI类:
该类仅用于ON_UPDATE_COMMAND_UI处理函数中
CCmdUI:
:
Enable使命令的用户界面元素有效或无效
virtualvoidEnable(BOOLbOn=TRUE);
参数:
bOn使用户界面元素有效时为TRUE,无效时为FALSE
CCmdUI:
:
SetCheck设置命令的用户界面元素为恰当的选择状态
virtualvoidSetCheck(intnCheck=1);
参数:
nCheck为0,设置为不选择,为1,设置为选择,为2,设置为不确定
CColorDialog类:
封装标准颜色对话框
CColorDialog:
:
CColorDialog构造一个CColorDialog对象
CColorDialog(COLORREFclrInit=0,DWORDdwFlags=0,CWnd*pParentWnd=NULL);
参数:
clrInit为缺省颜色选项,若未指定值,则为黑色;
dwFlags是标志,定制对话框的功能和外观,为0时只显示基本颜色,为CC_FULLOPEN时,显示完整颜色对话框;
pParentWnd指向拥有对话框的父窗口
CColorDialog:
:
GetColor获取用户选择的颜色
COLORREFGetColor()const;
返回值:
选中颜色的RGB值
CDC类:
定义设备环境对象类
CDC:
:
BitBlt从源设备环境拷贝一个位图到当前设备环境中
BOOLBitBlt(intx,inty,intnWidth,intnHeight,CDC*pSrcDC,intxSrc,intySrc,DWORDdwRop);
参数:
x,y为目的矩形的左上角坐标;nWidth,nHeight为目的矩形的宽度和高度;pSrcDC是指向源设备环境的指针;xSrc,ySrc源位图左上角的坐标;dwRop为光栅操作码。
CDC:
:
CreateCompatibleDC创建一个与pDC指定的设备相兼容的内存设备环境
virtualBOOLCreateCompatibleDC(CDC*pDC);
参数:
pDC设备环境指针
返回值:
若成功,返回非0;否则返回0
CDC:
:
Detach将设备环境从CDC对象中分离开来
HDCDetach()
返回值:
分离的设备环境
CDC:
:
DrawEdge绘制矩形边框或边框的一部分
BOOLDrawEdge(LPRECTlpRect,UINTnEdge,UINTnFlags);
参数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画一个说明输入焦点的矩形
voidDrawFocusRect(LPCRECTlpRect);
参数:
lpRect指向绘制矩形的逻辑坐标的RECT结构或CRect对象。
CDC:
:
DrawText在指定的矩形内绘制格式化的文本
virtualintDrawText(LPCTSTRlpszString,intnCount,LPRECTlpRect,UINTnFormat);
intDrawText(constCString&str,LPRECTlpRect,UINTnFormat);
参数:
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用指定单颜色填充矩形
voidFillSolidRect(LPCRECTlpRect,COLORREFclr);
voidFillSolidRect(intx,inty,intcx,intcy,COLORREFclr);
参数:
lpRect指定要填充的矩形;clr填充的颜色
x,y矩形的左上角坐标,cx、cy为矩形宽度和高度
CDC:
:
FromHandle在给予一个设备环境句柄时返回一个CDC对象指针
staticCDC*PASCALFromHandle(HDChDC);
参数:
hDC设备环境句柄
返回值:
CDC对象指针
CDC:
:
GetTextExtent使用当前字体计算一行文本的宽度和高度
CSizeGetTextExtent(LPCTSTRlpszString,intnCount)const;
CSizeGetTextExtent(constCString&str)const;
参数:
lpszString指向一个字符串,nCount字符串中字符数
str一个字符串对象
返回值:
字符串文本的宽度和高度(以逻辑单位表示)
CDC:
:
GetTextMetrics检取当前字体的规格
BOOLGetTextMetrics(LPTEXTMETRIClpMetrics)const;
参数:
lpMetrics指向用于接收字体规格的TEXTMETRIC结构
返回值:
若成功,返回非0;否则返回0
CDC:
:
LineTo从当前位置到指定点画直线
BOOLLineTo(intx,inty);
BOOLLineTo(POINTpoint);
参数:
x、y为直线末端的坐标;point为直线末端的坐标
返回值:
若成功,返回非0;否则返回0
该函数通常与MoveTo()函数合起来完成画线工作。
CDC:
:
MoveTo设置画图的起点位置
CPointMoveTo(intx,inty);
CPointMoveTo(POINTpoint);
参数:
x、y为新位置的坐标;point为新位置坐标
返回值:
先前位置的坐标
CDC:
:
PaintRgn用当前画刷填充一个CRgn对象的区域
BOOLPaintRgn(CRgn*pRgn);
参数:
指向一个CRgn对象的指针
返回值:
若成功,返回非0;否则返回0
CDC:
:
Rectangle用当前画笔画一个矩形,并用当前画刷填充为实心矩形
BOOLRectangle(intx1,inty1,intx2,inty2);
BOOLRectangle(LPCRECTlpRect);
参数:
x1、y1为矩形左上角坐标,x2、y2为矩形右下角坐标
lpRect为RECT结构或CRect对象
返回值:
若成功,返回非0;否则返回0
CDC:
:
RestoreDC将设备环境恢复成先前的状态
virtualBOOLRestoreDC(intnSaveDC);
参数:
nSaveDC设备环境先前状态的整数标识
返回值:
若成功,返回非0;否则返回0
CDC:
:
RoundRect用当前画笔画一个圆角矩形,并用当前画刷填充
BOOLRoundRect(intx1,inty1,intx2,inty2,intx3,inty3);
BOOLRoundRect(LPCRECTlpRect,POINTpoint);
参数:
x1、y1为左上角坐标,x2、y2为右下角坐标,x3、y3为画圆角的椭圆的逻辑宽度和高度
lpRect为RECT结构或CRect对象,point中的x、y为画圆角的椭圆的逻辑宽度和高度
返回值:
若成功,返回非0;否则返回0
CDC:
:
SaveDC保存设备环境的当前状态
virtualintSaveDC();
返回值:
若成功,返回标识保存设备环境的整数;若错误返回0
CDC:
:
SelectObject将一个对象选入设备环境,替代同一类型的先前对象
CPen*SelectObject(CPen*pPen);
CBrush*SelectObject(CBrush*pBrush);
virtualCFont*SelectObject(CFont*pFont);
CBitmap*SelectObject(CBitmap*pBitmap);
intSelectObject(CRgn*pRgn);
参数:
要选入的新对象的指针
返回值:
先前的旧对象的指针
CDC:
:
SelectStockObject将一个预定义的库存对象装入设备环境
virtualCGdiObject*SelectStockObject(intnIndex);
参数:
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设置当前背景色
virtualCOLORREFSetBkColor(COLORREFcrColor);
参数:
crColor为新背景色
返回值:
先前背景色;若错误,返回值为0x80000000
CDC:
:
SetBkMode设置背景模式
intSetBkMode(intnBkMode);
参数:
nBkMode为要设置的背景模式,取值可以为:
OPAQUE在绘制文本前用当前背景色填充背景,这是缺省的背景模式
TRANSPARENT绘制前不改变背景(即文字背景透明)
返回值:
先前的背景模式
CDC:
:
SetTextColor设置文本颜色
virtualCOLORREFSetTextColor(COLORREFcrColor);
参数:
crColor指定文本颜色
返回值:
先前的文本颜色
CDC:
:
TextOut用当前字体在指定位置写一字符串
virtualBOOLTextOut(intx,inty,LPCTSTRlpszString,intnCount);
BOOLTextOut(intx,inty,constCString&str);
参数:
x,y文本左上角坐标;lpszString指示要输出的字符串;nCount为字符串中字节数;str为要输出的CString对象
返回值:
若成功,返回非0;否则返回0
CDialog类:
所有对话框(模态或非模态)的基类
CDialog:
:
DoModal激活模态对话框,完成后返回对话框结果
virtualintDoModal();
返回值:
若不可创建对话框,返回-1;若错误返回IOABORT;若用户用“确定”按钮退出对话框,返回IDOK,否则返回IDCANCEL或0
CDocument类:
提供用户定义的文档类的基本功能
CDocument:
:
CanCloseFrame在关闭框架窗口之间由框架调用
virtualBOOLCanCloseFrame(CFrameWnd*pFrame);
参数:
pFrame指向连接到该文档上的一个视的框架窗口
CDocument:
:
SetTitle指定文档的标题
virtualvoidSetTitle(LPCTSTRlpszTitle);
参数:
lpszTitle指向用作文档标题的字符串
CEdit类:
是一个用于编辑控件的类
CEdit:
:
Copy将编辑控件中的当前选择以CF_TEXT格式拷贝到剪贴板中
voidCopy();
CEdit:
:
Cut剪切编辑控件中所选文本并以CF_TEXT格式拷贝到剪贴板中
voidCut();
CEdit:
:
GetModify确定控件内容是否修改
BOOLGetModify()const;
返回值:
若控件内容已修改,返回非0值,否则返回0。
CEdit:
:
GetSel获取编辑控件中当前选择的位置
DWORDGetSel()const;
voidGetSel(int&nStartChar,int&nEndChar)const;
参数:
nStartChar用于接收当前选择的第一个字符的位置;nEndChar用于接收当前选择后面第一个未选字符的位置。
返回值:
低位字和高位字分别是当前选择开始和选择区后第一个未选字符的位置。
CEdit:
:
Paste将数据从剪贴板插入到编辑控件中的当前光标处
voidPaste();
CEdit:
:
ReplaceSel用指定的文本替换编辑控件内选择的文本
voidReplaceSel(LPCTSTRlpszNewText,BOOLbCanUndo=FALSE);
参数:
lpszNewText指向替换文本的字符串;bCanUndo为TRUE时,指定该操作可以用Undo()撤销
CEdit:
:
SetLimitText设置CEdit控件可接收文本的最大字节数
voidSetLimitText(UINTnMax);
参数:
nMax新文本限制,按字节计。
CEdit:
:
SetModify设置控件修改标志
voidSetModify(BOOLbModified=TRUE);
参数:
bModified为TRUE,指示控件已修改,为FALSE,清除修改标志
CEdit:
:
SetSel设置编辑控件中选择的字符
voidSetSel(DWORDdwSelection,BOOLbNoScroll=FALSE);
voidSetSel(intnStar