• MFC常用类介绍


      CStatic

    CObject

    └CCmdTarget

    └CWnd

    └CStatic

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

    #include<afxwin.h>

    请参阅:

    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<afxwin.h>

    请参阅:

    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<afxwin.h>

    请参阅:

    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<afxdlgs.h>

    CFileDialog类的成员

    数据成员

    m_ofn

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

    构造函数

    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_VKEYTOITEM

    LBS_WANTKEYBOARDINPUT风格的列表框接受WM_KEYDOWN消息。

    如果在对话框中构造一个CListBox对象(通过对话资源),当用户关闭对话框时,CListBox对象自动毁弃。

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

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

    #include<afxwin.h>

    请参阅: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<afxwin.h>

    请参阅:CListBox

    CCheckListBox类的成员

    构造函数

    CCheckListBox

    构造一个CCheckListBox对象

    Create

    创建Windows复选列表框并应用到CCheckListBox对象上

    属性函数

    SetCheckStyle

    设置控件的复选框的风格

    GetCheckStyle

    获取控件的复选框的风格

    SetCheck

    设置某个项的复选框的状态

    GetCheck

    取得某个项的复选框的状态

    Enable

    允许或禁止存取某个项

    IsEnabled

    检测某个项是否允许存取

    OnGetCheckPosition

    由框架调用,取得某个项的复选框的状态

    可覆盖的函数

    DrawItem

    当自定义的列表框的某个可视属性改变时由框架调用

    MeasureItem

    当自定义的列表框的风格改变时由框架调用

  • 相关阅读:
    web开发:jquery高级
    web开发:jquery初级
    web开发:javascript之dom与bom
    web开发:javascript案例
    web开发:javascript动画
    web开发:javascript高级
    web开发:javascript操作
    web开发:javascript基础
    web开发:形变、表格及多行文本操作
    web开发:动画及阴影
  • 原文地址:https://www.cnblogs.com/lzmfywz/p/2465069.html
Copyright © 2020-2023  润新知