这篇文章能让初学者快速了解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文件不存在,则这个函数会自动建立这个文件,并建立相应的段和项。