最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

MFC常用类介绍

来源:动视网 责编:小OO 时间:2025-09-26 04:10:26
文档

MFC常用类介绍

MFC常用类介绍(一)C++学习2010-06-2711:43:05阅读332评论0字号:大中小订阅◆CStaticCObject└CCmdTarget└CWnd└CStaticCStatic类提供了一个Windows静态控件的性能。一个静态控件用来显示一个文本字符串,框,矩形,图标,光标,位图,或增强的图元文件。它可以被用来作为标签,框,或用来分隔其它的控件。一个静态控件不接收输入,也不提供输出;但是,如果它是用SS_NOTIFY风格创建的,则它可以通知其父有关设备点击的消息。创建一个静态控
推荐度:
导读MFC常用类介绍(一)C++学习2010-06-2711:43:05阅读332评论0字号:大中小订阅◆CStaticCObject└CCmdTarget└CWnd└CStaticCStatic类提供了一个Windows静态控件的性能。一个静态控件用来显示一个文本字符串,框,矩形,图标,光标,位图,或增强的图元文件。它可以被用来作为标签,框,或用来分隔其它的控件。一个静态控件不接收输入,也不提供输出;但是,如果它是用SS_NOTIFY风格创建的,则它可以通知其父有关设备点击的消息。创建一个静态控
MFC常用类介绍(一)

C++学习 2010-06-27 11:43:05 阅读332 评论0 字号:大中小 订阅 

◆ CStatic

CObject
└CCmdTarget

└CWnd

└CStatic

CStatic类提供了一个Windows静态控件的性能。一个静态控件用来显示一个文本字符串,框,矩形,图标,光标,位图,或增强的图元文件。它可以被用来作为标签,框,或用来分隔其它的控件。一个静态控件不接收输入,也不提供输出;但是,如果它是用SS_NOTIFY风格创建的,则它可以通知其父有关设备点击的消息。创建一个静态控件分两步。首先,调用构造函数来构造此CStatic对象,然后调用Create成员函数来创建此静态控件并将它与该CStatic对象连接。如果你是在一个对话框中创建了一个静态控件(通过一个对话框资源),则当用户关闭这个对话框时,此CStatic对象被自动销毁。如果你是在一个窗口中创建了一个CStatic对象,则必须由你来销毁它。在一个窗口的堆栈中创建的CStatic对象将自动被销毁。如果你是使用new函数在堆中创建CStatic对象,则当你使用完后,必须调用delete来销毁这个CStatic对象。

#include

请参阅:

CWnd,CButton,CComboBox,CEdit,CListBox,CScrollBar,CDialog

CStatic类成员

构造

CStatic构造一个CStatic对象
初始化

Create创建Windows静态控件并将它与该CStatic对象连接
操作符

SetBitmap指定要在此静态控件中显示的位图
GetBitmap获取先前用SetBitmap设置的位图的句柄
SetIcon指定一个要在此静态控件中显示的图标
GetIcon获取先前用SetIcon设置的图标的句柄
SetCursor指定要显示在此静态控件中的光标图像
GetCursor获取先前用SetCursor设置的光标图像的句柄
SetEnhMetaFile指定要显示在此静态控件中的增强的图元文件
GetEnhMetaFile获取先前用SetEnhMetaFile设置的增强图元文件的句柄
◆ CEdit

CObject
└CCmdTarget

└CWnd

└CEdit

CEdit类提供了Windows编辑控件中的功能。编辑控件是一个子窗口矩形,用户可以向其中输入文本。

可以通过对话模板或直接从代码中创建一个编辑控件。在两种情形下,首先调用CEdit构造程序构造CEdit对象,再调用Create成员函数创建Windows编辑控件并将其与CEdit对象连接。

构造在CEdit的派生类中可以单步实现。为派生类编写构造程序并从构造程序中调用Create。

CEdit从CWnd继承了重要的功能,要在CEdit对象中设置或获取文本,使用CWnd成员函数SetWindowText和GetWindowText,可以设置和得到编辑控件的全部内容,即使它是一个多行控件。如果编辑控件是多行的,使用CEdit成员函数GetLine,GetSel,GetSel和ReplaceSel来获取和写入控件的部分文本。

如果要处理编辑控件发往其父类(通常是一个CDialog派生类)的通知消息,则向父类中为每一消息添加一个消息映射入口和消息处理成员函数。

各消息映射入口可采用如下形式:

ON_Notification(id,memberFxn)

其中id指定了发送通知的编辑控件的子窗口ID,memberFxn为你写好的处理通知的父成员函数的名字。

父函数形式如下:

afx_msgvoidmemberFxn();

下面是一组可能的消息映射入口,以及在何种情况下向父类发送的描述:

·ON_EN_CHANGE用户采取的行动可能会改变编辑控件的文本。与EN_UPDATE通知消息不同,该通知是在Windows更新显示之后发送的。
·ON_EN_ERRSPACE编辑控件不能为特定请求分配足够的空间。
·ON_EN_HSCROLL用户单击了编辑控件中的水平滚动条,父窗口在屏幕更新之前被通知。
·ON_EN_KILLFOCUS编辑控件失去输入焦点。
·ON_EN_MAXTEXT当前输入超过了为编辑控件指定的数目,并作截尾处理。当编辑控件不具有ON_EN_HSCROLL风格且要输入的字符会超过编辑控件的宽度时,发送消息。当编辑控件不具有ON_EN_VSCROLL风格且要输入的字符会超过编辑控件的高度时,也会发送消息。
·ON_EN_SETFOCUS编辑控件获得焦点。
·ON_EN_UPDATE编辑控件将要显示变动的文本。在控件对文本格式化之后但在显示文本之前发送消息,以便在必要时改变窗口尺寸。
·ON_EN_VSCROLL用户单击了编辑控件中的垂直滚动条,父窗口在屏幕更新之前被通知。
如果在对话框内创建CEdit对象,CEdit对象在用户关闭对话框时自动被删除。

如果使用对话框编辑器从对话资源中创建CEdit对象,CEdit对象在用户关闭对话框时自动被删除。

如果在窗口内创建CEdit对象,也需要删除它。如果在栈上创建CEdit对象,它被自动删除。如果使用new函数在堆上创建CEdit对象,在用户中止编辑控件时,必须对其调用delete来删除它。如果在CEdit对象中分配存储空间,覆盖CEdit析构程序来处理分配情况。

关于CEdit的更多信息,请参阅联机文档“VisualC++程序员指南”中的“控件主题”。

#include

请参阅:

CWnd,CButton,CComboBox,CListBox,CScrollBar,CStatic,CDialog

CEdit类的成员

构造函数

CEdit构造一个CEdit控件对象
Create创建一个Windows编辑控件,并将其与CEdit对象连接
属性

CanUndo决定一个编辑控件操作是否能够被撤销
GetLineCount获得多行编辑控件中的行数
GetModify决定编辑控件的内容是否被修改
SetModify为编辑控件设置或清除修改标记
GetRect为编辑控件获取格式化的矩形
GetHandle获得为当前多行编辑控件分配的内存的句柄
SetHandle设置为多行编辑控件使用的本地内存的句柄
SetMargins为CEdit设置左边和右边的空白边界
GetMargins获得为CEdit设置左边和右边的空白边界
SetLimitText设置CEdit能够容纳的文本的最大量
GetLimitText获得CEdit能够容纳的文本的最大量
PosFromChar获得指定字符索引的左上角的坐标
CharFromPos获得最靠近指定位置的字符的行和字符索引
GetLine从编辑控件中获得一行文本
GetPasswordChar获得当用户输入文本时在编辑控件中显示的口令
GetFirstVisibleLeLine决定在编辑控件中最顶部的可视的行
操作

EmptyUndoBuffer重新设置(清除)编辑控件的撤销标记
FmtLines设置在多行编辑控件中的软回车打开或关闭
LimitText用户在输入文本时的文本长度
LineFromChar获得包含指定字符索引的行的数目
LineIndex获得在多行编辑控件中的某行的字符索引
LineLength获得编辑控件中的行的长度
LineScroll在多行编辑控件中滚动文本
ReplaceSel用指定文本覆盖编辑控件中当前被选中的文本
SetPasswordChar设置或清除当用户输入文本时在编辑控件中显示的口令
SetRect设置多行编辑控件的带格式的矩形,并更新该控件
SetRectNP设置多行编辑控件的带格式的矩形,而不必重新绘制
SetSel在编辑控件中选定文本SetTabStops设置多行编辑控件的制表键停顿位
SetReadOnly为编辑控件设置只读状态
剪贴板操作

Undo撤销上一次的编辑控件操作
Clear删除(清除)编辑控件中当前选中的文本
Copy将编辑控件中的当前选中文本以CF_TEXT格式拷贝到剪贴板中
Cut删除编辑控件中当前选中的文本,并将删除的文本以CF_TEXT格式拷贝到剪贴板中
Paste在当前光标位置插入剪贴板内的文本。只有在剪贴板数据为CF_TEXT格式时才进行插入
◆ CButton

CObject
└CCmdTarget

└CWnd

└CButton

类CButton提供了对Windows按钮控件的操作。按钮控件是一个小的矩形子窗口,可以通过单击选中(按下)或不选中。按钮可以单独使用,也可以成组使用,它还可以具有文本标题。在用户单击它的时候,按钮通常要改变显示外观。

典型的按钮控件有:复选框、单选钮和下压式按钮(pushbutton)。一个CButton对象可以是它们中的一种,这由它的按钮风格和成员函数Create的初始化决定。

此外,类CButtonBitmap是从类CButton继承而来的,不过它支持按钮的图像标签。一个CButtonBitmap对象可以分别为它的四种状态(未按下、按下、获得焦点和禁止存取)设置不同的位图。

既可以从对话框模板中创建一个按钮控件,也可以直接在代码中创建。

无论哪种情况,都要先调用构造函数CButton构造一个CButton对象,然后调用成员函数Create创建Windows按钮控件并应用到CButton对象上。

在一个从类CButton派生出来的类中,构造可以一步完成。程序员可以为这个派生类编写一个构造函数,并在其中调用Create函数。

如果想处理Windows的通知消息,如位图按钮控件发给它的父对象(通常是从CDialog继承来的)的消息,就要在父对象中加入消息映射入口以及处理每个消息的成员函数。

每个消息映射入口的格式如下:

ON_Notification(id,memberFxn)

其中id指定了发送通知的控件的子窗口的ID,而memberFxn指定了处理该通知的父对象中的成员函数名。

父对象的函数原型格式如下:

afx_msgvoidmemberFxn();

可能的消息映射入口如下:

映射入口何时向父对象发送消息
ON_BN_CLICKED用户单击按钮时
ON_BN_DOUBLECLICKED用户双击按钮时
如果在对话框资源中创建了CButton对象,则在用户关闭该对话框时会自动撤消这个CButton对象。如果在窗口中创建了CButton对象,就可能需要自己撤消它。如果是用new函数在内存的堆中创建该对象的,则在用户关闭该窗口按钮控件时,必须用delete函数撤消它。如果在堆栈中创建了该对象,或者它嵌入在父对话框对象中,系统会自动撤消它。

#include

请参阅:

CWnd,CComboBox,CEdit,CListBox,CScrollBar,CStatic,CBitmapButton,CDialog

CButton类的成员

构造函数

CButton构造一个CButton对象
初始化函数

Create创建Windows按钮控件并在CButton对象上应用
操作

GetState检索按钮控件的选中状态、加亮状态和获得焦点状态
SetState设置按钮控件的加亮状态
GetCheck检索按钮控件的选中状态
SetCheck设置按钮控件的选中状态
GetButtonStyle检索按钮控件的风格
SetButtonStyle设置按钮控件的风格
GetIcon检索此前调用SetIcon设置的图标句柄
SetIcon指定一个在按钮上显示的图标
GetBitmap检索此前调用SetBitmap设置的位图的句柄
SetBitmap设置在按钮上显示的位图
GetCursor检索此前调用SetCursor设置的光标图像的句柄
SetCursor设置在按钮上显示的光标图像
可覆盖的函数

DrawItem可以覆盖它来绘制自定义的CButton对象
◆ CFileDialog

CObject
└CCmdTarget

└CWnd

└CDialog

└CCommonDialog

└CFileDialog

CFileDialog类封装了Windows常用的文件对话框。常用的文件对话框提供了一种简单的与Windows标准相一致的文件打开和文件存盘对话框功能。

可以用构造函数提供的方式使用CFileDialog,也可以从CFileDialog派生出自己的对话类并编写一个构造函数来适应你的需要。每种情况下,对话框都与标准MFC对话框一样工作。因为它们都是CCommonDialog类的派生类。

要使用CFileDialog,先用CFileDialog构造函数构造一个对象,当创建了一个对话框后,可以设置或修改m_ofn结构中的任何值,以初始化对话框控件的值或状态。m_ofn结构是OPENFILENAME类型的。要了解更多信息,可参阅联机文档“Win32SDK”中的OPENFILENAME结构。

初始化对话框控件后,调用DoModal成员函数显示对话框并使用户输入路径和文件。DoModal返回不论是用户选择了OK(IDOK)还是取消(IDCANCEL)按钮。

当DoModal返回IDOK,可以使用某一个CFileDIalog的公共成员函数获取用户输入的信息。

CFileDIalog包含许多保护成员,使你可以处理常用的共享冲突、文件名合法性检查、列表框改变通知。这些保护成员对许多应用来说用处不大,因为缺省处理是自动的。对这些函数来说,消息映射入口是不必要的,因为它们是标准虚函数。

可以使用WindowsCommDlgExtendError函数判断在初始化对话框时是否是发生了错误,并获取关于错误的更多信息。

析构一个CFileDialog对象是自动,无须调用CDialog::EndDialog。

要使用户选用多个文件,可在调用DoModal之前设置OFN_ALLOWMULTISELECT标志。你应提供文件名缓冲区来放置返回的多个文件名的列表,这通过用一个分配了的缓冲区指针替换m_ofn.lpstrFile来实现,要在创建了CFileDialog之后调用DoModal之前进行此操作。另外,必须用m_ofn.lpstrFile指向的缓冲区字节数来设置m_ofn.nMaxFile。

CFileDialog依赖于Windows3.1及以后版本中的COMMDLG.DLL。

如果从CFileDialog中派生出一个新类,可用消息映射处理。要扩展消息处理,从CWnd中派生一个类,向新类中加入一个消息映射并为新消息提供成员函数,无须提供一个钩子函数来定制对话框。

要定制对话框,从CFileDialog中派生一个对象,提供一个定制对话模板,从扩展控件中加入一个消息映射,处理通知消息。任意未处理的消息将传递给基类。

无须定制钩子函数。

要了解有关使用CFileDialog的信息,可参阅联机文档“VisualC++程序员指南”中的“常用对话类”。

#include

CFileDialog类的成员

数据成员

m_ofnWindowsOPENFILENAME结构,提供对基本文件对话框参数的访问
构造函数

CFileDialog构造一个CFileDialog对象操作
DoModal显示对话框并使用户可以进行选择
GetPathName返回选定文件的完整路径
GetFileName返回选定文件的文件名
GetFileExt返回选定文件的扩展文件名
GetFileTitle返回选定文件的标题
GetNextPathName返回下一个选定文件的完整路径
GetReadOnlyPref返回选定文件的只读状态
GetStartPosition返回文件名列表的第一个元素位置
可覆盖的函数

OnShareViolation发生共享冲突时调用
OnFileNameOK确认键入对话框中的文件名
OnLBSelChangedNotify当列表框选择改变时调用
OnInitDone处理WM_NOTIFYCDN_INITDONE消息
OnFileNameChange处理WM_NOTIFYCDN_SELCHANGE消息
OnFolderChange处理WM_NOTIFYCDN_FOLDERCHANGE消息
OnTypeChange处理WM_NOTIFYCDN_TYPECHANGE消息
◆ CListBox

CObject
└CCmdTarget

└CWnd

└CListBox

CListBox类提供Windows列表框的功能。列表框显示项的列表,如用户可以见到和选择的文件名称。

在单选列表框里,用户只可选择一个项。在多选列表框里,可选择许多项。当用户选择某项时,其高亮显示且列表框给父窗口发送一个通知消息。

可从对话模板或直接在你的代码中创建列表框。直接创建时,构造CListBox对象,再调用Create成员函数创建Windows列表框控件并将其附加给CListBox对象。要在对话模板中使用列表框,可在对话框类中声明一个CListbox变量,再在对话框类的DoDataExchange中使用DDX_Control连接成员变量到此控件(当向对话框类中添加控件变量时,ClassWizard自动为你实现)。

构造函数可以是从CListBox派生的类的一个单步进程。为派生类写构造函数并从中调用Create。

如果要处理由列表框发送到其父亲(通常为从CDialog派生的类)的Windows通知消息,为每个消息添加消息映射入口和消息处理成员函数到父类。

每个消息映射入口有以下形式:

ON_Notification(id,memberFxn)

id指定发送通知的列表框控件的子窗口,memberFxn是编写处理通知的父成员函数名的地方。

父函数原型如下:

afx_msgvoidmemberFxn();

下面是可能的消息映射入口列表和描述它们可能被发送到父亲的情况:

ON_LBN_DBLCLK用户双击列表框中的字符串。只有LBS_NOTIFY风格的列表框才会发送此通知消息。
ON_LBN_ERRSPACE列表框不能重新分配足够的内存来满足请求。
ON_LBN_KILLFOCUS列表框正失去输入焦点。
ON_LBN_SELCANCEL当前列表框选择被取消。此消息只有在列表框是LBS_NOTIFY风格时才发送。
ON_LBN_SELCHANGE列表框中的选择可能改变。如果选择被CListBox::SetCurSel成员函数改变,则通知不发送。此通知只适用于LBS_NOTIFY风格的列表框。无论何时用户按下箭头键,即使选择未改变,LBN_SELCHANGE通知消息都被发送给多选列表框。
ON_LBN_SETFOCUS列表框正在接收输入焦点。
ON_WM_CHARTOITEM一个无字符串的自绘制列表接受WM_CHAR消息。
ON_WM_VKEYTOITEMLBS_WANTKEYBOARDINPUT风格的列表框接受WM_KEYDOWN消息。
如果在对话框中构造一个CListBox对象(通过对话资源),当用户关闭对话框时,CListBox对象自动毁弃。

如果在窗口中构造一个CListBox对象,可能需要毁弃CListBox对象。如果在栈上创建CListBox对象,它会自动毁弃。如果使用new函数在堆上创建CListBox对象,必须对此对象调用delete来在用户关闭父窗口时毁弃它。

如果在CListBox对象中分配内存,可覆盖CListBox析构程序释放分配的内存。

#include

请参阅:CWnd,CButton,CComboBox,CEdit,CScrollBar,CStatic

CListBox类的成员

构造函数

CListBox构造一个CListBox对象
初始化

Create创建Windows列表框并附加给CListBox对象
InitStorage为列表框的项和字符串预分配内存块
一般操作

GetCount返回列表框中的字符串数目
GetHorizontalExtent返回列表框的水平宽度,用像素表示
SetHorizontalExtent设置列表框的水平宽度,用像素表示
GetTopIndex返回列表框中第一个可见字符串的索引
SetTopIndex设置列表框中第一个可见字符串的基于零的索引
GetItemData返回与列表框有关的32位值
GetItemDataPtr返回指向列表框的指针
SetItemData设置列表框有关的32位值
SetItemDataPtr设置指向列表框的指针
GetItemRect返回当前显示的列表框项的相应矩形
ItemFromPoint返回与某点最近的列表框项的索引
SetItemHeight设置列表框中项的高度
GetItemHeight确定列表框中项的高度
GetSel返回列表框某项的选择
GetText拷贝某列表框项到缓冲区
GetTextLen返回列表框的字节长
SetColumnWidth设置多列列表框的列宽
SetTabStops设置列表框制表键停止位置
GetLocale获取列表框的地点标识符
SetLocale设置列表框的地点标识符
单选操作

GetCurSel返回列表框中当前选择串的基于零的索引
SetCurSel选择一个列表框字符串
多选操作

SetSel在多选列表框中选择或不选某个列表框项
GetCaretIndex确定在多选列表框中有焦点矩形的项的索引
SetCaretIndex设置焦点矩形到多选列表框中的指定的索引项
GetSelCount返回多选列表框中当前选择的字符串的数目
GetSelItems返回列表框中当前选择的字符串的索引
SelItemRange选择/不选多选列表框中的一些字符串
SetAnchorIndex设置多选列表框的锚点以开始扩展选择
GetAnchorIndex获取列表框当前锚点项的基于零的索引
字符串操作

AddString添加一个字符串到列表框中
DeleteString从列表框中删除一个字符串
InsertString在列表框中指定位置插入一个字符串
ResetContent清空列表框所有入口
Dir从当前目录添加文件名称到列表框中
FindString在列表框中查找一个字符串
FindStringExact查找与指定的字符串匹配的第一个列表框字符串
SelectString查找并选择单选列表框中的一个字符串
可覆盖的函数

DrawItem当自绘制列表框的一个可视部分改变时,被框架调用
MeasureItem当自绘制列表框创建时,被框架调用来确定列表框维数
CompareItem被框架调用以确定一系列列表框中某新项的位置
DeleteItem当用户从自绘制列表框中删除某项时,被框架调用
VKeyToItem覆盖以提供LBS_WANTKEYBOARDINPUT风格列表框的设置所需的定制WM_KEYDOWN
CharToItem覆盖以提供不含字符串的自绘制列表框定制WM_CHAR
◆ CCheckListBox

CObject
└CCmdTarget

└CWnd

└CListBox

└CCheckListBox

类CCheckListBox实现了Windows复选列表框。复选列表框显示项的一个列表,例如文件名列表。列表中的每项都有一个复选框。

CCheckListBox只用于自定义的控件,列表中不仅仅包含字符串文本。

当然简单的复选列表框可以只有字符串文本和相应的复选框。实际上也可以没有文本。例如可以是一个位图以及相应于复选框的列表。

创建自己的复选列表框,要从类CCheckListBox派生一个子类。然后为它写一个构造函数,并调用成员函数Create。

如果复选列表框是缺省形式的(由左边带有固定大小的复选框的字符串组成),就可以用缺省的CCheckListBox::DrawItem函数绘制复选列表框。否则就要覆盖函数CListBox::CompareItem、CCheckListBox::DrawItem以及CCheckListBox::Meas-ureItem。

可以在对话框模板或程序代码中直接创建一个复选列表框。

#include

请参阅:CListBox

CCheckListBox类的成员

构造函数

CCheckListBox构造一个CCheckListBox对象
Create创建Windows复选列表框并应用到CCheckListBox对象上
属性函数

SetCheckStyle设置控件的复选框的风格
GetCheckStyle获取控件的复选框的风格
SetCheck设置某个项的复选框的状态
GetCheck取得某个项的复选框的状态
Enable允许或禁止存取某个项
IsEnabled检测某个项是否允许存取
OnGetCheckPosition由框架调用,取得某个项的复选框的状态
可覆盖的函数

DrawItem当自定义的列表框的某个可视属性改变时由框架调用
MeasureItem当自定义的列表框的风格改变时由框架调用
MFC常用类介绍(二)

C++学习 2010-06-27 11:45:06 阅读356 评论0 字号:大中小 订阅 

◆ CComboBox

CObject
└CCmdTarget

└CWnd

└CComboBox

类CComboBox封装了Windows组合框。组合框由一个列表框和一个静态控件(或编辑控件)组成。列表框部分可以是一直显示的,也可以是隐藏的,在用户单击编辑控件边上的按钮(下拉箭头)时下拉该列表框。列表框中当前选中的项(如果有的话)显示在静态控件或编辑控件中。如果组合框带有下拉风格,则当用户在编辑框中输入列表项的开始字符时,对应项(如果有的话)中的第一个将会加亮显示。

下表列出了组合框的三种风格:

风格列表框何时可见静态控件还是编辑控件
Simple总是可见编辑控件
Drop-down当用户单击控件边上的下拉箭头时编辑控件
Drop-downlist当用户单击控件边上的下拉箭头时静态控件
可以从对话框模板中建立一个CComboBox对象,也可以直接在代码中创建。无论采用哪种方法,都要先调用CComboBox的构造函数构造一个CComboBox对象,然后调用成员函数Create创建控件并在CComboBox对象上应用它。

消息映射入口的格式如下:

ON_Notification(id,memberFxn)

其中id指定了发送通知的组合框控件的子窗口ID,而memberFxn是用于处理该通知的父成员函数的名字。

父窗口的函数原型的格式如下:

afx_msgvoidmemberFxn();

通知发送的次序是不能预先确定的。例如,通知CBN_SELCHANGE既可能在CBN_CLOSEUP之前也可能在它之后出现。

可能的消息映射入口如下:

·ON_CBN_CLOSEUP(Windows3.1及更高版本)组合框的列表已被关闭。对于风格为CBS_SIMPLE的组合框来说,不会发送该通知消息。

·ON_CBN_DBCLICK用户双击了列表框中的一个字符串。只对风格为CBS_SIMPLE的组合框发送。对于风格为CBS_DROPDOWN或CBS_DROPDOWNLIST的组合框来说,不会出现双击的消息,因为一次单击就会使下拉列表隐藏或显示了。
·ON_CBN_DROPDOWN下拉出下拉列表(变为可见)。只对风格为CBS_DROPDOWN或CBS_DROPDOWNLIST的组合框起作用。
·ON_CBN_EDITCHANGE用户发出了一个可能改变编辑控件中文本的动作。与消息CBN_EDITUPDATE不同,本消息是在Windows刷新屏幕之后发出的。风格为CBS_DROPDOWNLIST的组合框没有该通知。
·ON_CBN_EDITUPDATE编辑控件部分将显示变化了的文本。本通知消息在控件已经格式化了文本但没有显示时发送。风格为CBS_DROPDOWNLIST的组合框没有该通知。
·ON_CBN_ERRSPACE不能为组合框分配足够的内存进行响应某个请求。
·ON_CBN_SELENDCANCEL(Wndows3.1及更高版本)表明用户的选择将被忽略。用户在单击了一个项之后,又单击了另外一个窗口或控件隐藏了组合框的下拉列表。此通知消息在CBN_CLOSEUP消息之前发送,以表明用户的选择将被忽略。即使没有发送CBN_CLOSEUP通知消息,也会发送CBN_SELENDCANCEL或CBN_SELENDOK消息(例如风格为CBS_SIMPLE的组合框)。
·ON_CBN_SELENDOK用户在选择了一项以后,要么按了ENTER键,要么按了向下箭头键,从而隐藏了组合框的列表。此通知消息在CBN_CLOSEUP之前发送,表明用户的选择将不被认为是有效的。即使没有发送CBN_CLOSEUP通知消息,也会发送CBN_SELENDCANCEL或CBN_SEL-ENDOK消息(例如风格为CBS_SIMPLE的组合框)。
·ON_CBN_KILLFOCUS组合框将失去输入焦点。
·ON_CBN_SELCHANGE用户在列表中单击或者利用箭头键选择了另一个项,从而引起了选中项的改变。在处理此消息时,编辑控件中的文本只能通过GetLBText或者类似的某个函数存取。不能使用GetWindowText函数。
·ON_CBN_SETFOCUS组合框获得输入焦点。
如果在对话框中创建了一个CComboBox对象,在关闭对话框时该CComboBox对象将自动撤消。

如果在另外一个窗口对象中嵌入了一个CComboBox对象,不需要显式地撤消它。如果在堆栈中创建了一个CComboBox对象,它也会被自动地撤消。如果采用new在内存堆中创建了一个CComboBox对象,则必须调用delete来撤消它。

#include

请参阅:

CWnd,CButton,CEdit,CListBox,CScrollBar,CStatic,CDialog

CComboBox类的成员

构造函数

CComboBox构造一个CComboBox对象
初始化函数

Create创建一个组合框并应用到CComboBox对象上
InitStorage预先为组合框的列表框中的项和字符串分配内存
通用操作

GetCount取得组合框的列表框中项的个数
GetCurSel取得组合框的列表框中当前选中项(如果有的话)的下标
SetCurSel在组合框的列表框中选择一个字符串
GetEditSel取得组合框的编辑控件中当前选项的起止字符位置
SetEditSel选中组合框的编辑控件中的字符
SetItemData设置组合框中指定项的32位值
SetItemDataPtr把组合框中指定项的32位值设置成一个指定的void型指针
GetItemData检索应用为组合框的项提供的32位值
GetItemDataPtr检索应用为组合框的项提供的32位值,返回一个void型指针
GetTopIndex返回组合框中列表框的第一个可见项的下标
SetTopIndex让组合框的列表框显示指定下标所在的项
SetHorizontalExtent设置组合框中列表框的水平宽度(以像素为单位),如果列表超过该宽度,将需要用滚动条
GetHorizontalExtent返回组合框中列表框的水平宽度(以像素为单位)
SetDroppedWidth设置组合框中下拉列表允许的最小宽度
GetDroppedWidth返回组合框中下拉列表允许的最小宽度
Clear删除编辑控件中的当前选择(如果有的话)
Copy以CF_TEXT格式拷贝编辑控件中的当前选择(如果有的话)到剪贴板
Cut删除编辑控件中的选择项(如果有的话),并把删除的内容以CF_TEXT格式拷贝到剪贴板
Paste在编辑控件中的当前位置粘贴剪贴板中的内容。仅当剪贴板中的数据是CF_TEXT格式的才会真正插入
LimitText设置用户可以在组合框的编辑控件中输入的文本的最大长度
SetItemHeight设置组合宽中列表框的项的高度或编辑控件(或静态控件)中文本的高度
GetItemHeight取得组合框中列表项的高度
GetLBText从组合框的列表框中取得一个字符串
GetLBTextLen取得组合框的列表框中某个字符串的长度
ShowDropDown显示或者隐藏风格为CBS_DROPDOWN或CBS_DROPDOWNLIST的组合框的列表框
GetDroppedControlRect取得组合框中可见(已经下拉)的列表框的屏幕坐标
GetDroppedState检测组合框的列表框是否可见(是否已经下拉)
SetExtendedUI选择风格为CBS_DROPDOWN或CBS_DROPDOWNLIST的组合框中的列表框的缺省用户接口或扩展用户接口
GetExtendedUI检测组合框的用户接口是缺省的还是扩展的
GetLocale取得组合框的定位标记
SetLocale设置组合框的定位标记
字符串操作

AddString在组合框的列表框的列表末尾添加一个字符串,或在具有CBS_SORT风格的的列表框中按次序所在的位置插入一个字符串
DeleteString删除组合框中的列表框中的一个字符串
InsertString在组合框的列表框中插入一个字符串
ResetContent删除组合框的列表框和编辑控件中的所有项
Dir在组合框的列表框中添加文件名的列表
FindString在组合框的列表框中查找具有指定前缀的第一个字符串
FindStringExact在组合框的列表框中查找具有与指定字符串完全匹配的第一个字符串
SelectString在组合框的列表框中查找字符串,找到后选中它,并把它拷贝到编辑控件中
可覆盖的函数

DrawItem当自定义的组合框的某个可视特性改变时,由主程序调用
MeasureItem当创建一个自定义的组合框时,由主程序调用以检测组合框的维数
CompareItem由主程序调用以检测在有序的自定义组合框中新项所在的位置
DeleteItem从自定义的组合框中删除一个列表项时,由主程序调用
◆ CTreeCtrl

CObject
└CCmdTarget

└CWnd

└CTreeCtrl

一个“treeview控件”是一个用来显示项的层次列表的窗口,比如一个文档中的标题,索引中的项,或磁盘中的文件和目录。每一个项都包括一个标签和一个可选的位图图像,每一个项还有一个与其相关的子项的列表。单击一个项,用户可以展开或缩进该项的相关子项的列表。

CTreeCtrl类提供了Windows通用treeview控件的性能。这个控件(也就是CTreeCtrl类)只对运行在Windows95和WindowsNT3.51或更高版本下的程序来说是可用的。

#include

请参阅:CImageList

CTreeCtrl类成员

构造

CTreeCtrl构造一个CTreeCtrl对象
Create创建一个treeview控件并将它与一个CTreeCtrl对象连接
属性

GetCount获取与一个treeview控件相关联的tree项的数目
GetIndent获取一个treeview项对它的父项的偏移(以像素表示)
SetIndent设置一个treeview项对它的父项的偏移(以像素表示)
GetImageList获取与一个treeview控件相关联的图像列表的句柄
SetImageList设置与一个treeview控件相关联的图像列表的句柄
GetNextItem获取与指定的关系匹配的下一个treeview项
ItemHasChildren如果指定项有子项则返回非零值
GetChildItem获取一个指定treeview项的子项
GetNextSiblingItem获取指定treeview项的下一个兄弟项
GetPrevSiblingItem获取指定treeview项的前一个兄弟项
GetParentItem获取指定treeview项的父项
GetFirstVisibleItem获取指定treeview项的第一个可视项
GetNextVisibleItem获取指定treeview项的下一个可视项
GetPrevVisibleItem获取指定treeview项的前一个可视项
GetSelectedItem获取当前被选择的treeview项
GetDropHilightItem获取一次拖放操作的目标
GetRootItem获取指定treeview项的根
GetItem获取一个指定treeview项的属性
SetItem设置一个指定treeview项的属性
GetItemState返回一个项的状态
SetItemState设置一个项的状态
GetItemImage获取与一个项相关联的图像
SetItemImage设置与一个项相关联的图像
GetItemText返回一个项的文本
SetItemText设置一个项的文本
GetItemData返回与一个项关联的32位的应用程序指定值
SetItemData设置与一个项关联的32位的应用程序指定值
GetItemRect获取一个treeview项的边界矩形
GetEditControl获取用来编辑指定treeview项的编辑控件的句柄
GetVisibleCount获取与一个treeview项关联的可视tree项的编号
GetToolTips获取一个treeview控件使用的子ToolTip控件的的句柄
SetToolTips设置一个treeview控件的子ToolTip控件的的句柄
GetBkColor获取控件的当前背景颜色
SetBkColor设置控件的背景颜色
GetItemHeight获取treeview项的当前高度
SetItemHeight设置treeview项的当前高度
GetTextColor获取控件的当前文本颜色
SetTextColor设置控件的文本颜色
SetInsertMark设置一个treeview控件的插入标记
GetCheck获取一个tree控件项的核选状态
SetCheck设置一个tree控件项的核选状态
GetInsertMarkColor获取treeview用来绘制插入标记的颜色
SetInsertMarkColor设置treeview用来绘制插入标记的颜色
操作

InsertItem在一个treeview控件中插入一个新项。
DeleteItem从一个treeview控件中删除一个项
DeleteAllItems从一个treeview控件中删除所有的项
Expand展开或收缩指定treeview项的子项
Select选择,在视中滚动,或重画一个指定的treeview项
SelectItem选择一个指定的treeview项
SelectDropTarget重画作为一次拖放操作的目标的tree项
SelectSetFirstVisible选择一个指定的treeview项作为第一个可视项
EditLabel现场编辑一个指定的treeview项
HitTest返回与CtreeCtrl关联的光标的当前位置
CreateDragImage为指定的treeview项创建一个拖动位图
SortChildren排序一个给定父项的子项
EnsureVisible确保一个treeview项在它的treeview控件中是可视的
SortChildrenCB使用一个由应用程序定义的排序函数来排列一个给定父项的子项
◆ CBitmap

CObject
└CGdiObject
└CBitmap 

类CBitmap封装了Windows图形设备接口(GDI)中的位图,并且提供了操纵位图的成员函数。使用CBitmap对象之前要先构造CBitmap对象,调用其中的一个初始化成员函数设置位图对象的句柄。此后就可以调用其它成员函数了。#include

CBitmap类的成员

构造函数 

CBitmap构造一个CBitmap对象
初始化函数 

LoadBitmap从应用的可执行文件中加载一个命名的位图资源来初始化位图对象
LoadOEMBitmap加载一个预定义的Windows位图来初始化位图对象
LoadMappedBitmap加载一个位图并把它的颜色映射为系统颜色
CreateBitmap用一个指定宽度、高度和位图模式的依赖于设备的内存位图初始化位图对象
CreateBitmapIndirect用BITMAP结构中给出的宽度、高度和模式(可以不指定)的位图初始化位图对象
CreateCompatibleBitmap用一个位图初始化对象使之与指定设备兼容
CreateDiscardableBitmap用一个可丢弃的、与指定设备兼容的位图初始化对象
属性 

GetBitmap用位图信息填充BITMAP结构
operator HBITMAP返回CBitmap对象上的Windows句柄
操作 

FromHandle给出WindowsHBITMAP结构的指针时,返回指向CBitmap对象的指针
SetBitmapBits把位图的位设为指定的值
GetBitmapBits拷贝指定位图的位值到指定的缓冲
SetBitmapDimension设置位图的宽度和高度(以0.1毫米为单位)
GetBitmapDimension返回位图的宽度和高度。要求已经调用SetBitmapDimension设置位图的宽度和高度

文档

MFC常用类介绍

MFC常用类介绍(一)C++学习2010-06-2711:43:05阅读332评论0字号:大中小订阅◆CStaticCObject└CCmdTarget└CWnd└CStaticCStatic类提供了一个Windows静态控件的性能。一个静态控件用来显示一个文本字符串,框,矩形,图标,光标,位图,或增强的图元文件。它可以被用来作为标签,框,或用来分隔其它的控件。一个静态控件不接收输入,也不提供输出;但是,如果它是用SS_NOTIFY风格创建的,则它可以通知其父有关设备点击的消息。创建一个静态控
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top