当前位置:文档之家› MFC常用控件使用

MFC常用控件使用

MFC常用控件使用
MFC常用控件使用

使用Windows标准控件

我们在前面曾提到过,控件是一些行为标准化了的窗口,一般用于对话框或其它窗口中充当与用户交互的元素。在Visual C++中,可以使用的控件分成三类:

(1) Windows标准控件

Windows标准控件由Windows操作系统提供,在Windows 95中还提供了一些新增的控件。所有这些控件对象都是可编程的,我们可以使用Visual C++提供的对话框编辑器把它们添加到对话框中。Microsoft基础类库(MFC)提供了封装这些控件的类,它们列于表6.1。

表6.1 Windows标准控件

控件 MFC类 描述

动画 CAnimateCtrl 显示连续的AVI视频剪辑

按钮 CButton 用来产生某种行为的按钮,以及复选

框、单选钮和组框

组合框 CComboBox 编辑框和列表框的组合

编辑框 CEdit 用于键入文本

标题头 CHeaderCtrl 位于某一行文本之上的按钮,可用来控

制显示文件的宽度

热键 CHotKeyCtrl 用于通过按下某一组合键来很快的执

行某些常用的操作

图象列表 CImageList 一系列图象(典型情况下是一系列图标

或位图)的集合。图象列表本身不是一

种控件,它常常是和其它控件一起工

作,为其它控件提供所用的图象列表 列表 CListCtrl 显示文本及其图标列表的窗口

列表框 CListBox 包括一系列字符串的列表

进度 CProgressCtrl 用于在一较长操作中提示用户所完成

的进度

多格式文本编辑 CRichEditCtrl 提供可设置字符和段落格式的文本编

辑的窗口

滚动条 CScrollBar 为对话框提供控件形式的滚动条

滑块 CSliderCtrl 包括一个有可选标记的滑块的窗口

旋转按钮 CSpinButtonCtrl提供一对可用于增减某个值的箭头

静态文本 CStatic 常用于为其它控件提供标签

状态条 CStatusBarCtrl 用于显示状态信息的窗口,同MFC类

CStatusBar类似

续表6.1 控件 MFC类 描述

选项卡 CTabCtrl 在选项卡对话框或属性页中提供具有类

似笔记本中使用的分隔标签的外观的选

项卡

工具条 CToolBarCtrl 具有一系列命令生成按钮的窗口,同MFC

类CToolBar类似

工具提示 CToolTipCtrl 一个小的弹出式窗口,用于提供对工具

条按钮或其它控件功能的简单描述

树 CTreeCtrl 用于显示一系列的项的继承结构

前面提到过,在MFC中,类CWnd是所有窗口类的基类,很自然的,它也是所有控件类的基类。Windows标准控件在以下环境下提供:

?Windows 95

?Windows NT 3.51及以后版本

?Win32s 1.3

?注意:

?Visual C++ 4.2及以后版本不再支持Win32s。

(2) ActiveX控件

ActiveX控件可用于对话框中,也可用于HTML文档中。这种控件过去被称为OLE 控件。本书将在专门的章节中来讲述关于ActiveX控件的知识。这里仅指出ActiveX控件使用了与标准控件完全不同的接口和实现方法。

(3) 其它MFC控件类

除了Windows标准控件和自己编写的或者来自于第三方软件开发商的ActiveX 控件以外,MFC还提供了另外三种控件,它们由下面的三个类进行封装:

?类CBitmapButton用于创建以位图作为标签的按钮,位图按钮最多可以包括四个位图图片,分别代表按钮的四种不同状态。

?类CCheckListBox用于创建选择列表框,这种列表框中的每一项前面有一个复选框,以决定该项是否被选中。

?类CDragListBox用于创建一种特殊的列表框,这种列表框允许用户移动列表项。

在本章我们仅讲述第一类控件,即Windows标准控件。所涉及的内容包括各个控件的使用及相应的技巧。

第一节使用对话框编辑器和ClassWizard

对于大多数Windows标准控件,我们一般都使用对话框编辑器来将它们添加到对话框中。

图6. 1 在ResourceView中选择对话框

IDD_DIALOGDEMO_DIALOG

图6. 2 控件的Properties对话框

图6. 3 对话框编辑器的Controls工具窗口

在下面的过程中,我们将一个编辑框控件添加到在第四章创建的基于对话框的MFC框架应用程序的主对话框窗口中。

1. 首先,在Workspace窗口的ResourceView选项内双击DialogDemo resources\Dialog节点下的IDD_DIALOGDEMO_DIALOG图标。上面的操作如图所示。

2. 用鼠标选中标有“要做……”的静态文本控件。右击鼠标,从上下文菜单中选择Properties,打开如图6.2所示的对话框,在Caption文本框中输入新的控件文本:“在下面的文本框中输入一些字符”,然后将静态文本控件拖动到对话框的左上角。

3. 从Controls工具窗口(如图6.3所示,如果在你的资源编辑器中看不到该工具窗口,可以在工具条上右击鼠标,从上下文菜单中选择Controls)中选择编辑

控件图标,在对话框中绘制一个编辑框控件,如图6.4所示。

在该编辑框控件的Properties窗口的General选项卡中输入其ID为IDC_EDIT。然后在Styles选项卡下将Multiline复选框划上勾,并消除Auto HScroll复选框前的勾。

4. 右击该编辑框控件,从上下文菜单中选择ClassWizard命令,打开ClassWizard对话框,该对话框看起来如图6.5所示。

图6. 4 向对话框中添加一个编辑框控件

图6. 5 ClassWizard对话框

单击Member Variables选项卡,确信在Project处选择了DialogDemo,在Class name处选择了CDialogDemoDlg。现在我们为刚才添加的编辑框控件IDC_EDIT

添加一个数据映射入口。在Control IDs处选择IDC_EDIT,单击右边的Add Viable 按钮。打开如图6.6所示的对话框。

在Member variable name处链接变量名m_strEdit (这里m表示该变量为类CDialogDemoDlg的一个成员变量,str表明其类型为字符串,即类CString),在Category下拉列表中选择Value (另一种选择是Control,两种选择的不同将在后面的内容中讲述),在Variable type下拉列表中选择CString (还有其它很多数据类型可供选择,但由于这里编辑框中的内容为一字符串,因此CString 是最恰当的选择)。单击OK关闭对话框。

图6. 6 为控件映射添加成员变量

5. 检查一下现在的ClassWizard对话框(图

6.7)与图6.5相比有何不同。在图

6.7所示的对话框中下方的Maximum characters文本框中输入50。由字面意思可以很容易猜出其含义,即将编辑框IDC_EDIT中可能的最长字符串的大小限制为50。单击OK关闭对话框。

图6. 7 使用ClassWizard设置数据验证方案

6. 从Workspace窗口的ClassView中双击类CDialogDemoDlg的OnInitDialog 成员函数,使用下面的代码来代替位于语句

return TRUE;

前的// TODO注释:

m_strEdit="您好! 请在这里输入一些字符串。";

UpdateData(FALSE);

7. 在ClassView中双击类CDialogDemoApp的InitInstance成员函数,使用下面的代码来找替位于选择支

if (nResponse == IDOK)

下的//TODO注释:

AfxMessageBox(dlg.m_strEdit);

然后将同一成员函数中的下面的代码行删掉(或注释掉):

m_pMainWnd = &dlg;

8. 编译并运行该应用程序。显示如图6.8所示的对话框。

图6. 8 示例程序DialogDemo的运行结果

在图6.8所示的文本框中输入一些字符,单击“确定”。随即弹出如图6.9所示的消息框。该消息框复述了用户在图6.8所示的对话框中的输入。我们还发现,在图6.8所示的对话框中,当输入字符串达到一定的长度之后,我们不可以再输入更多的字符,这是我们在前面设置了Maximum characters为50的结果。

图6. 9 以消息框的形式反馈输入的字符串

下面我们来看在上面的步骤中都完成了什么。首先我们使用资源编辑器向对话框模板中添加这些标准控件,这一步的概念很清晰,因此并不难理解。

然后,我们打开了所绘制的编辑框的Properties (属性)对话框。先将其控件ID 设置为IDC_EDIT。这时如果打开头文件Resource.h,就会发现宏IDC_EDIT被定义为常量1001。不过,事实上在很多情况下我们并不需要关心每一控件的ID的

具体值,而只需要记住相应的助记符。对于这里的编辑框控件,我们只需要记住IDC_EDIT即可,而不需要关心它等于1001。接着,我们在Styles选项卡中设置了Multiline属性,同时清除了Auto HScroll属性,两者共同作用使用得编辑框IDC_EDIT支持多行文本,并且如文本行的长度超过编辑框宽度时自动回行。

下面的步骤是最重要的一步,我们动用了功能强大的工具ClassWizard。首先,我们将编辑框与一个CString对象相关联,这使用了一种被称为Dialog Data Exchange (DDX)的机制。在这种机制中,我们先在处理函数OnInitDialog或对话框类的构造函数中对对话框对象的成员变量进行初始化,在对话框显示之前,框架的DDX机制将成员变量的值传递给对话框中的控件。这个过程在成员函数DoModal或Create被调用的过程中发生。类CDialog中对OnInitDialog成员函数的默认实现调用了类CWnd成员函数UpdateData来初始化对话框中的控件。这时我们就可以看到前面的第6步还可在具有下面的几种变通方案:

1. 将代码行

m_strEdit="您好! 请在这里输入一些字符串。";

移到对基类的OnInitDialog成员函数的调用之前,即位于下面的代码之前: CDialog::OnInitDialog();

2. 将代码

m_strEdit="您好! 请在这里输入一些字符串。";

移到类CDialogDemoDlg的构造函数中。

对于上面的两种方法,与前面第6步中使用的方法相比,我们没有必要调用类CWnd的成员函数UpdateData。因为该函数在类CDialog的成员函数OnInitDialog中将被调用。

这三种方法之间并没有明确的优劣之分,在很多情况下,它们分别适用于不同的场合。

这里我们说一下成员函数UpdateData。该函数带有一个布尔类型的参数,如果该参数为FALSE,函数UpdateData将成员变量的值传递给对话框的变量;而如果该参数为TRUE,函数UpdateData将进行相反的过程。

如果用户单击了对话框中ID为IDOK的按钮,或者以TRUE为参数调用函数UpdateData,DDX机制从控件中将值传递到成员变量,同时对话框数据验证(dialog data validation,DDV)机制根据设定的验证规则验证所有数据项。

在数据交换的过程中,成员函数UpdateData先创建一个CDataExchange对象,然后调用对话框对类CDialog成员函数DoDataExchange的重载版本。该

CDataExchange对象将作为成员函数DoDataExchange的一个参数,该参数定义了数据交换的上下文。

在DoDataExchange中,我们为每一个数据成员指定了一个对DDX函数的调用。每一个函数定义了基于由成员函数UpdateData所提供的CDataExchange参数所确定的上下文而进行的双向数据交换。

下面的代码摘自实现文件DialogDemo.cpp中对函数DoDataExchange的定义:

void CDialogDemoDlg::DoDataExchange(CDataExchange* pDX)

{

CDialog::DoDataExchange(pDX);

//{{AFX_DATA_MAP(CDialogDemoDlg)

DDX_Text(pDX, IDC_EDIT, m_strEdit);

DDV_MaxChars(pDX, m_strEdit, 50);

//}}AFX_DATA_MAP

}

在两行注释//{{AFX_DATA_MAP和//}}AFX_DATA_MAP之间的代码部分称作数据映射。函数DDX_Text使用CString对象m_strEdit与ID为IDC_EDIT的编辑框控件相关联。函数DDV_MaxChars设置与编辑框控件IDC_EDIT相关联CString对象m_strEdit的最大长度为50。

需要注意的是,如果用户在模式对话框中单击了“取消”(Cancel)按钮,DoModal 函数将返回值IDCANCEL,在这种情况下,在对话框和对话框对象之前的数据交换不会发生。

由于这个原因,如果DoModal函数返回了值IDOK,我们可以使用下面的代码来复述用户在对话框中所输入的值:

AfxMessageBox(dlg.m_strEdit);

?注意:

?在前面的第7步中有一个乍看起来有一些费解的过程,这就是我们为什么要将下面的代码从函数OnInitDialog中删除:

?m_pMainWnd = &dlg;

这基于下面的一个事实:

类CWinThread的数据成员m_pMainWnd有一个有用的特征,如果由

该成员所引用的窗口被关闭的话,MFC库将自动的终止CWinThread

对象所代表的线程。这样,如果我们将指向dlg的指针赋予了成员

变量m_pMainWnd,那么,无论我们单击了“确认”还是“取消”,

应用程序的主线程都将被自动终止,之后的代码当然不会得到执

行。而在本示例中,我们希望在对话框被关闭后程序继续运行(即

弹出一个消息重述用户所输入的内容),因此不应该将dlg对象的

指针赋予成员变量m_pMainWnd,从而需要将前面的代码从函数

OnInitDialog中删除。

第二节所有窗口类的基类:CWnd

在MFC中类CWnd是一个很重要的类,它封装了Windows窗口句柄HWND。在Windows 编程中,窗口句柄唯一的标识了一个窗口。然而,尽管类CWnd的对象和窗口句柄之间有着如此紧密的联系,但两者并不是等同的概念。CWnd对象通过类CWnd 的构造函数和析构函数创建和消毁,而Windows窗口是Windows内部的一种数据结构,在类CWnd中,它通过Create成员函数创建,通过其析构函数消毁。除此之外,成员函数DestroyWindow可以消毁Windows窗口,而不需要消毁CWnd对象。

传统的Windows应用程序中,消息是通过一个称作窗口过程(window procedure,通常具有WndProc之类的函数名)的回调函数来处理的。这种方式在MFC中仍然使用,但为CWnd类及其消息映射所隐藏。在类CWnd中,Windows通知消息会被自动的通过消息映射传递到类CWnd中合适的OnMessage成员函数(这里OnMessage是指这些函数具有的以On为前缀的函数名,如OnPaint和前面接触到的OnInitDialog等)进行处理。通常我们都在类CWnd的派生类中重载需要处理的特定消息所对应的OnMessage成员函数。除了直接从CWnd派生新的窗口类以外,我们更倾向于从MFC中定义的其它类,如CFrameWnd、CMIDFrameWnd、CMDIChileWnd、CView和CDialog以及CButton之类的控件类派生新的窗口类。在MFC中定义的这些类本身也是从CWnd派生的。

通常我们使用两个步骤来创建一个窗口:首先,调用类CWnd的构造函数来构造一个CWnd对象,然后调用其成员函数Create来创建窗口并将该窗口与所创建的CWnd对象相关联。

当用户终止该窗口时,消毁与之相关联的CWnd对象,或者调用CWnd对象的成员函数DestroyWindow删除窗口并消毁其数据结构。

大多数以HWND为参数的Win32 API函数都已作为类CWnd的成员函数进行了封装,事实上,很多时候我们通过类Wnd的派生类调用的成员函数并不是由派生类本身所提供的,而是在类CWnd中进行定义的。下面我们分类给出在CWnd类中定义的各类成员函数。完整而详尽的说明每一个成员函数在本书中是不现实的,这里我

们仅给出对每一个成员函数的简短说明,以便读者在编程时能够很快的查找到所需的函数,这时再去查找有关于该函数的详细的说明就不是一件困难的事了。

1. 类CWnd的数据成员(表6.2):

表6. 2 类CWnd的数据成员

数据成员描述

m_hWnd与该CWnd对象相关联的Windows窗口句柄(HWND)

2. 构造函数/析构函数(表6.3):

表6. 3 类CWnd的构造函数和析构函数

成员函数获得图标句柄

SetIcon设置句柄为一指定图标

GetWindowContextHelpId获得帮助上下文标识符

SetWindowContextHelpId设置帮助上下文标识符

ModifyStyle修改当前窗口样式

ModifyStyleEx修改当前窗口的扩展样式

5. 窗口大小和位置函数(表

6.6):

表6. 6 类CWnd的窗口大小和位置成员函数

成员函数描述

GetWindowPlacement获得显示状态和窗口的正常、最小化和最大化位置

SetWindowPlacement设置显示状态和窗口的正常、最小化和最大化位置

GetWindowRgn获得窗口的窗口区域的拷贝

SetWindowRgn设置窗口区域

IsIconic判断窗口是否被最小化(图标化)

IsZoomed判断窗口是否被最大化

MoveWindow改变窗口的位置和度量

SetWindowPos改变子窗口、弹出式窗口或顶层窗口的大小、位置和顺序

ArrangeIconicWindows排列所有最小化的子窗口

BringWindowToTop将CWnd对象放到覆盖窗口栈的顶部

GetWindowRect获得CWnd对象的屏幕坐标

GetClientRect获得CWnd对象客户区的度量

6. 窗口访问函数:

表6. 7 类CWnd的窗口访问成员函数

成员函数描述

ChildWindowFromPoint判断包含指定点的子窗口

FindWindow返回由其窗口名称和窗口类标识的窗口的句柄

GetNextWindow返回窗口管理器列表中的下一个(或上一个)窗口

GetOwner返回指向CWnd对象的所有者的指针

续表6.7 成员函数描述

SetOwner改变CWnd对象的所有者

GetTopWindow返回属于CWnd对象的第一个子窗口

GetWindow返回与当前窗口有指定关系的窗口

GetLastActivePopup判断由CWnd对象所有的弹出窗口中最近激活的窗口

IsChild判断CWnd对象是否为一个子窗口

GetParent如果存在的话,获得CWnd对象的父窗口

GetSafeOwner获得给定窗口的安全的所有者

SetParent改变父窗口

WindowFromPoint标识包括给定点的窗口

GetDlgItem从指定的对话框获得标准符为指定ID的控件

GetDlgCtrlID如果CWnd为一子窗口,返回其ID值

SetDlgCtrlID当CWnd对象为一子窗口(不仅指对话框中的控件)时,为其指定控件

ID或窗口ID

GetDescendantWindow检查所有下级窗口(descendant window)并返回具有指定ID的窗口

GetParentFrame获得CWnd对象的父框架窗口

SendMessageToDescendants发送一条消息到窗口的所有下级窗口

GetTopLevelParent获得窗口的顶层父窗口

GetTopLevelOwner获得窗口的顶层所有者窗口

GetParentOwner返回指向子窗口的父窗口的指针

GetTopLevelFrame获得窗口的顶层框架窗口

UpdateDialogControls用来更新对话框按钮或其它控件的状态

UpdateData初始化对话框或从对话框中获取数据

CenterWindow相对于父窗口使窗口居中

7. 更新和绘制函数(表6.8)

表6. 8 类CWnd的更新和绘制函数

成员函数描述

BeginPaint为重绘操作准备CWnd对象

EndPaint标记重绘操作的结束

续表6.8 成员函数描述

Print在指定的设备上下文绘制当前窗口

PrintClient在指定的设备上下文(通常是打印机)绘制所有窗口

LockWindowUpdate禁止或重新允许绘制指定的窗口

UnlockWindowUpdate解除CWnd::LockWindowUpdate对窗口的锁定

GetDC获得客户区的显示上下文

GetDCEx获得客户区的显示上下文,并在绘制过程中允许裁剪

RedrawWindow在客户区中更新指定的矩形或区域

GetWindowDC获得整个窗口的显示上下文,包括标题条,菜单和滚动条

ReleaseDC释放客户区或窗口设备上下文,并使其可为其它程序所使用UpdateWindow更新客户区

SetRedraw决定在CWnd对象中的改变是否被重绘

GetUpdateRect获得完全覆盖CWnd对象的更新区域的最小矩形坐标

GetUpdateRgn获得CWnd对象的更新区域

Invalidate使用整个客户区无效

InvalidateRect通过将给定矩形添加到当前更新区域来使包括在给定矩形内的客户区无效InvalidateRgn通过将给定区域添加到当前更新区域来使包括在给定区域内的客户区无效

ValidateRect通过将给定矩形从当前更新区域中移出来使包括在给定矩形内的客户区有

ValidateRgn通过将给定区域从当前更新区域中移出来使包括在给定区域内的窗户区有

ShowWindow显示或隐藏窗口

IsWindowVisible判断窗口是否可见

ShowOwnedPopups显示或隐藏窗口拥有的所有弹出式窗口

EnableScrollBar允许或禁止滚动条上的一个或两个箭头

8. 坐标映射函数(表6.9)

表6. 9 类CWnd的坐标映射函数

成员函数描述

MapWindowPoints从CWnd对象的坐标空间映射一系列点到另一窗口的坐标空间

续表6.9 成员函数描述

ClientToScreen转换给定点的客户坐标或显示矩形到屏幕坐标

ScreenToClient转换给定点的屏幕坐标或显示矩形到客户坐标

9. 窗口文本函数(表6.10)

表6. 10 类CWnd的窗口文本函数

成员函数描述

SetWindowText设置窗口文本或标题条(如果有的话)为指定文本

GetWindowText获得窗口文本或标题条

GetWindowTextLength返回窗口文本或标题条的长度

SetFont设置当前字体

GetFont获得当前字体

10. 滚动函数(表6.11)

表6. 11 类CWnd的滚动成员函数

成员函数描述

GetScrollPos获得滚动框的当前位置

GetScrollRange拷贝给定滚动框中滚动块的当前最大和最小位置

ScrollWindow滚动客户区的内容

ScrollWindowEx滚动客户区内容。与ScrollWindowEx类似,但具有一些附加特

GetScrollInfo获得关于某一滚动条的由SCROLLINFO结构维护的信息

GetScrollLimit获得滚动条的限制

SetScrollInfo设置关于滚动条的信息

SetScrollPos设置滚动条的当前位置,并在指定的情况下重绘滚动条以反映

新的位置

SetScrollRange设置给定滚动条的最小和最大位置值

ShowScrollBar显示或隐藏滚动条

EnableScrollBarCtrl允许或禁止兄弟滚动条控件

GetScrollBarCtrl返回兄弟滚动条控件

RepositionBars在客户区中对控件条重定位

11. 拖放函数(表6.12)

表6. 12 类CWnd的拖放成员函数

成员函数描述

DragAcceptFiles使窗口可以接受文件拖放

12. 插入符函数(表6.13)

表6. 13 类CWnd的插入符成员函数

成员函数描述

CreateCaret新的插入符形状,并获得该插入符的所有权

CreateSolidCaret创建方块形状的插入符,并获得该插入符的所有权

CreateGrayCaret创建变灰方块形状的插入符,并获得该插入符的所有权

GetCaretPos获得插入符当前位置的客户坐标

SetCaretPos移动插入符到指定的位置

HideCaret隐藏插入符

ShowCaret在插入符的当前位置显示插入符

13. 对话框项函数(表6.14)“

表6. 14 类CWnd的对话框项函数

成员函数描述

CheckDlgButton在按钮控件前放置选中标记或清除按钮控件的选中标记

CheckRadioButton选中指定的单选钮并清除指定给中其它所有单选钮的选中

标记

GetCheckedRadioButton返回一组按钮中当前选中单选钮的ID

DlgDirList使用文件或目录列表填充一列表框

DlgDirListComboBox使用文件或目录列表填充一组合框的列表框

DlgDirSelect从一列表框中获得当前选择

DlgDirSelectComboBox从一组合框的列表框中获得当前选择

GetDlgItemInt将给定对话框中某一控件的文本转换为一个整数值

GetDlgItemText获得与某一控件相关联的标题或文本

GetNextDlgGroupItem查找同一组中的下一个(或前一个)控件

续表6.14 成员函数描述

GetNextDlgTabItem查找在指定控件之前(或之后)的第一个具有WS_TABSTOP样

式的控件

IsDlgButtonChecked判断一个按钮控件是否选中

IsDialogMessage判断一个给定消息是否影响非模态对话框,如果是,处理该

消息

SendDlgItemMessage向指定的控件发送一条消息

SetDlgItemInt使某一控件的文本为某一给定整数值

SetDlgItemText设置指定对话框中某一控件的标题或文本

SubclassDlgItem将一个Windows控件与CWnd对象相关联,并使其通过CWnd

对象的消息映射传递消息

ExecuteDlgInit初始化对话框资源

RunModalLoop为一模态窗口获取、翻译或发送消息

ContinueModal使一窗口继续保持模态

EndModalLoop结束某一窗口的模态状态

14. 数据绑定函数(表6.15):

表6. 15 类CWnd的数据绑定成员函数

成员函数描述

BindDefaultProperty将调用对象的默认简单绑定属性(该属性在类型库中标记)绑定

至相关联的数据源控件的游标

BindProperty将数据绑定控件的游标绑定属性绑定至数据源控件,并使用MFC

绑定管理器注册绑定关系

GetDSCCursor获得指向由数据源控件的数据源、用户名、密码和SQL属性定义

的底层游标的指针

15. 菜单函数(表6.16)

表6. 16 类CWnd的菜单成员函数

成员函数描述

GetMenu获得指向指定菜单的指针

SetMenu设置菜单为指定的菜单

DrawMenuBar重绘菜单条

GetSystemMenu允许应用程序访问控制菜单以进行复制和修改

续表6.16 成员函数描述

HiliteMenuItem加亮顶层菜单项或移去顶层菜单项的加亮显示

16. 工具提示函数(表6.17)

表6. 17 类CWnd的工具提示函数

成员函数描述

EnableToolTip允许工具提示控件

CancelToolTip禁止工具提示控件

FilterToolTipMessage获得对话框中与某一控件相关联的标题或文本

OnToolHitTest判断一个点是否在指定工具的绑定矩形内,并获得该工具的信息

17. 计时器函数(表6.18)

表6. 18 类CWnd的计时器成员函数

成员函数描述

SetTimer安装系统计时器,计时器触发时发送WM_TIMER消息

KillTimer消除系统计时器

18. 提示函数(表6.19)

表6. 19 类CWnd的提示成员函数

成员函数描述

FlashWindow闪烁窗口一次

MessageBox创建并显示一个包括应用程序提供的消息和标题的窗口

19. 窗口消息函数(表6.20)

表6. 20 类CWnd的窗口消息成员函数

成员函数描述

GetCurrentMessage返回窗口正在处理的消息的指针。仅当在一个OnMessage消息处理函数

中调用该成员函数。

Default调用默认窗口过程,该过程提供对所有应用程序未处理的消息的默认处

PreTranslateMessage由CWinApp使用,在窗口消息被发送到TranslateMessage和

DispatchMessage之前对其进行过滤

续表6.20 成员函数描述

SendMessage将一条消息发送到CWnd对象,直至该对象处理该消息之后才返回

PostMessage将一条消息放入程序的消息队列,不等待窗口处理该消息就立即返回

SendNotifyMessage将指定消息发送到窗口,并尽可能快的返回,这依赖于调用线程如何创

建窗口

20. 剪贴板函数(表6.21)

表6. 21 类CWnd的剪贴板函数

成员函数描述

ChangeClipboardChain从剪贴板查看器链中移去CWnd对象

SetClipboardViewer添到CWnd对象到窗口链,这些窗口当剪贴板内容改变时会收到通

OpenClipboard打开剪贴板。其它程序仅当Windows CloseClipboard函数被调用

时才可以更改剪贴板

VF 表单常用属性

VF 表单常用属性 Caption表单的标题 Name表单的名字 AutoCenter表单是否居中(值为.T.时,运行自动居中) Movable表单是否可移动(值为.F.时,运行时不可移动 Closable标题栏中关闭按钮是否失效(值为.F.时失效) ControlBox是否取消标题栏中所有按钮(值为.F.时取消) MaxButton指定表单最大化按钮是否失效(值为.F.时失效) MinButton指定表单最小化按钮是否失效(值为.F.时失效) 若上述两属性都为.F.,则取消最大与最小化按钮 WindowState设定运行时是否是最大化或最小化,值为0(普通),1(最小化),2(最大化) Visible设定表单是否可见,值为.F.时不可见Enabled Enabled设定表单是否可用,为.F. 时不可用 标签控件常用属性 Autosize标签的显示内容 FontName设置标签显示内容的字体 FontSzie设置标签显示内容的字体大小 ForeColor设置字的颜色 BackColor设定标签的背景色 Visible设定表签是否可见,值为.f.时不可见 文本框控件常用属性 Value文本框中的内容(值) Name文本框的名字 FontName设置文本框显示内容的字体 FontSzie设置文本框显示内容的字体大小 ForeColor设置字的颜色 BackColor设定文本框的背景色 Visible设定文本框是否可见,值为.f.时不可见 Enabled设定文本框是否激活可用,值为.f.时不可用 PasswordChar设定文本框是否为密码框 ReadOnly设定文本框是否只读,值为.t.时只读 ControlSource设定文本框的数据源(通过此属性设置,与表的字段发生联系) 命令按钮常用属性

表单的基本知识点

表单基本型控件的常用属性 1标签 Caption标题name控件名、fontsize字体大小、fontname文本字体 Alignment指定标题文本在控件内文本的对齐方式 Autosize 是否自动调整控件大小以容纳其内容 Backstyle 指定对象的背景是否透明 Borderstyle 指定对象的边框样式 2命令按钮组 Caption标题width指定对象的宽度height 指定高度 Default 指定按下enter时,哪一个命令按钮会响应 Enabled指定控件能否响应由用户引发的事件 Visible 指定对象是可见还是隐藏 3文本框 Readonly 是否设置为只读Value 设置文本框中的内容 Passwordchar 是否显示占位符,常用* Recordsource指表格数据源Recordsourcetype指表格数据源类型 注意.有两张表格,一张表格显示一数据表内容,另一张表格显示与该数据表内容对应的另一数据表的内容,这种题先添加数据环境,并使数据环境中的这两张表有联线(需先设置表间的永久联系);对两张表格RecordSourceType属性均设为“别名”,RecordSource属性设为数据表文件名。 5列表框 Multiselect 是否可进行多重选择Rowsource指列表框或组合框数据源 Rowsourcetype指列表框或组合框数据类型 6页框(也称为选项卡) PageCount(设置页数)ActivePage(设置活动页)Caption(设置每页的标题是Page1或Page2等各页的标题) 7组合框 属性:RowSourceType(数据源类型)、RowSource(数据源)、Style(设置下拉组合框还是下拉列表框 8选项按钮组 ButtonCount(设置选项数目)、Caption(设置选项的标题 9计时器 InterVal设置时间间隔 常用事件 Lode在表单对象建立之前引发Init在对象建立时引发 Destroy在对象释放时引发Unload 在表单对象释放时引发 引发顺序Load init destroy unload Click是单击事件Rightclick是右击事件 常用方法 Show是显示HIDE是隐藏 RELEASE是释放REFRESH是刷新 有关的命令 Create form 建立表单Modify form 打开表单设计器 退出或关闭thisform.release 或release thisform 建立CREATE CLASS 新类OF 类库AS 父类 修改modify CLASS 类名OF 类库 删除remove class 类名of 类库创建类库create classlib 类库名

表单控件属性与方法总结

表单控件属性与方法总结表单控件属性 表单的文件名:.scx 表单

输出类控件 标签:第一次创建:name:label1 数据绑定时的字段名显示,默认的名称:lbl字段名 图像:image1. 通用型字段中如果存放的是图片,数据绑定指定的控件就是图像控件 线条:line1

形状:shape1 对控件对象的多重选定:shift+选择 输入类控件 文本框:text1 可以接受4种:c n d(t) l。可以作为以上4种数据类型的绑定控件:Txt字段名

方法:表示对象的行为 Setfocus:设置焦点 Thisform.控件名.方法名 事件: Gotfocus:对象获得焦点时 Lostfocus: 对象失去焦点时 Interactivechange:当键盘或鼠标改变文本框的值时发生 文本框和标签 分别用文本框控件和标签控件显示系统时间,系统日期,系统的日期时间Time()=c型 Date()=d型 Datetime()=t型 文本框用value可以接受c、n、d、l、t 标签用caption接受,只能是c 注意:在属性中设置也要加=

属性设置例子: THISFORM.TEXT1.VALUE=DATE() THISFORM.TEXT1.VALUE=DATETIME() THISFORM.TEXT1.VALUE=TIME() https://www.doczj.com/doc/9e14054410.html,BEL1.CAPTION=TIME() https://www.doczj.com/doc/9e14054410.html,BEL1.CAPTION=TTOC(DATETIME()) https://www.doczj.com/doc/9e14054410.html,BEL1.CAPTION=DTOC(DATE()) 列表框list1和组合框combo1 1.列表框的列表项全部显示,而组合框只显示一项 2.组合框分为下拉组合框和下拉列表框,前者允许选择和输入数据项,后者和列表框一样只有选取功能

excel表单控件与ActiveX控件概念

工作表中的表单、表单控件和ActiveX 控件概念 是的,确实如此。在Microsoft Excel 中,使用少量或者无需 使用Microsoft Visual Basic for Applications (VBA) 代码即可 创建出色的表单。使用表单以及可以向其中添加的许多控件和 对象,您可以显著地增强工作表中的数据项并改善工作表的显 示方式。 ? ? 什么是表单? 无论是打印表单还是联机表单都是一种具有标准结构和格式的文档,这种文档可让用户更轻松地捕获、组织和编辑信息。 ?打印表单含有说明、格式、标签以及用于写入或键入数据的空格。您可以使用Excel 和Excel 模板创建打印表单。 ?联机表单包含与打印表单相同的功能。此外,联机表单还包含控件。控件是用于显示数据或者更便于用户输入或编辑数据、执行操作或进行选择的对象。通常,控件可使表单更便于使用。例如,列表框、选项按钮和命令按钮都是常用控件。通过运行(VBA) 代码,控件还可以运行指定的和响应事件,如鼠标点击。 您可以使用Excel 通过多种方式创建打印表单和联机表单。 Excel 表单的类型 您可以在Excel 中创建多种类型的表单:数据表单、含有表单和ActiveX 控件的工作表以及VBA 用户表单。可以单独使用每种类型的表单,也可以通过不同方式将它们结合在一起来创建适合您的解决方案。 数据表单

为在无需水平滚动的情况下在单元格区域或表格中输入或显示一整行信息提供了一种便捷方式。您可能会发现,当数据的列数超过可以在屏幕上查看的数据列数时,使用数据表单可以使数据输入变得更容易,而无需在列之间进行移动。如果以标签的形式将列标题列出的文本框这一简单表单足以满足您的需求,而且您不需要使用复杂的或自定义的表单功能(例如列表框或调节钮),则可以使用数据表单。 Excel 可以为您的或自动生成内 置数据表单。数据表单会在一个对 话框中将所有列标题都显示为标 签。每个标签旁边都有一个空白文 本框,您可以在其中输入每一列的 数据,最多可以输入32 列数据。 在数据表单中,您可以输入新行, 通过导航查找行,或者(基于单元 格内容)更新行及删除行。如果某 个单元格包含,则公式结果会显示 在数据表单中,但您不能使用数据 表单更改该公式。 含有表单和ActiveX 控件的工作表 工作表是一种类型的表单,可让您在网格中输入数据和查看数据,Excel 工作表中已经内置了多种类似控件的功能,如注释和数据验证。单元格类似于文本框,因为您可以在单元格中输入内容以及通过多种方式设置单元格的格式。单元格通常用作标签,通过调整单元格高度和宽度以及合并单元格,您可以将工作表用作简单的数据输入表单。其他类似控件的功能(如单元格注释、超链接、背景图像、数据验证、条件格式、嵌入图表和自动筛选)可使工作表充当高级表单。 为增加灵活性,您可以向工作表的“”添加控件和其他绘图对象,并将它们与工作表单元格相结合和配合。例如,您可以使用列表框控件方便用户从项目列表中选择项目。还可以使用调节钮控件方便用户输入数字。 因为控件和对象存储在绘图画布中,所以您可以显示或查看不受行和列边界限制的关联文本旁边的控件和对象,而无需更改工作表中数据网格或表的布局。在大多数情况下,还可以将其中许多控件链接到工作表中的单元格,而无需使用VBA 代码即可使它们正常工作。您可以设置相关属性来确定控件是自由浮动还是与单元格一起移动和改变大小。例如,在对区域进行排序时,您可能有一个希望与基础单元格一起移动的复选框。不过,如果您有一个希望一直保持在特定位置的列表框,则您可能希望它不与其基础单元格一起移动。 Excel 有两种类型的控件:表单控件和ActiveX 控件。除这两个控件集之外,您还可以通过绘图工具(如、、SmartArt 图形或文本框)添加对象。 以下部分介绍这些控件和绘图对象,此外,还更为详细地介绍如何使用这些控件和对象。

vf表单控件的使用说明

一、标签 标签能够显示多个字符构成的文本,用于设计表单上所需的文字性提示信息。标签和大多数控件的不同点在于运行表单时不能用《tab》键来选择标签。 常用的标签属性及其作用如下。 1、Caption:确定标签处显示的文本。 2、Visible:设置标签可见还是隐藏。 3、AutoSize:确定是否根据标签上显示文本的长度,自动调整标签大小。 4、BackStyle:确定标签是否透明。 5、WordWrap:确定标签上显示的文本能否换行。 6、FontSize:确定标签上显示文本所采用的字号。 7、FontName:确定标签上显示文本所采用的字体。 8、ForeColor:确定标签上显示的文本颜色。 二、命令按钮和命令按钮组 在各种窗口或对话框中几乎都要使用一个或多个命令按钮。一旦用户单击一个命令按钮,就可实现某种规定的操作。例如,各种对话框中的“确定”按钮,当用户单击时将结束对话框的操作。 VisualForPro中的命令按钮控件同样用于完成特定的操作。操作的代码通常放在命令按钮的“单击”事件(即Click Event)代码中。这样,运行表单时,当用户单击命令按钮时便会执行Click事件代码。如果在表单运行中,某个命令按钮获得了焦点(这时,这个命令按钮上会比其他命令按钮多一个线框),则当用户按下《Enter》键或空格键时,也会执行这个命令按钮的Click时间代码。 常用的命令按钮属性及其作用如下: 1、Caption:设置在按钮上显示的文本。 2、Default:在表单运行中,当命令按钮以外的某些控件(如文本框)获得焦点时,若 用户按下《Enter》键,将执行Default属性值为.T.的那个命令按钮的click事件代码。 3、Cancel:如果设置该属性值为.T.,则当用户按下键时,将执行命令按钮的click 事件的代码。 4、Enabled:指明按钮是否失效,即是否被选择。当Enabled属性值为.f.时,用户无法 选择该按钮。 5、DisabledPicture:指定按钮失效时在按钮上显示的.bmp文件。 6、DownPicture:指定在按钮按下时按钮上显示的.bmp文件。 7、Visible:指明按钮是否可见。 8、Picture:指明显示在按钮上的.bmp文件。 命令按钮组时一组命令按钮,是容器对象。使用命令按钮组便于对一组命令按钮进行统一操作和设置。命令按钮组的ButtonCount属性值,决定组中命令按钮的个数。 表单运行时,当用户单击组中某个命令按钮时,命令按钮组的Value属性可以返回所单击按钮的序号。若要单独设置组中的某个命令按钮的属性,可以使用命令按钮组的快捷菜单中的“编辑”命令选择某个按钮,在“属性”窗口中设置其属性。若为组中某个按钮的Click事件写了代码,当单击这个按钮时,将执行该按钮的Click事件代码而不是组的Click事件代码。 三、选项按钮组 选项按钮组是常用的一种控件,用在各种对话框中,让用户从给定几个操作中选择一个。例如“文件”菜单中“新建”菜单项打开“新建”对话框,该对话框中有一个标题为“文件类型”的选项按钮组,让用户选择建立哪一种类型的文件。

表单控件常用属性、事件及方法英中对照

VFP表单/控件常用属性、事件及方法英中对照 ——属性—— Name:表单或控件名 Caption:标题文字 AutoCenter:自动居中 AutoSize:自动大小 ForeColor:前景色 BackColor:背景色 Closable:可关闭 Movable:可移动 Width:宽度 Height:高度 Icon:图标 Visible:可见 Font*:字体、字号等 Enabled:能用 ButtonCount:命令按钮组、选项组控件中控件的个数 Buttons(1):命令按钮组、选项组控件中第一个控件;Buttons(2)命令按钮组、选项组控件中第二个控件;…… value:表示组控件中选中的是第几个控件 或文本框中的内容 或列表框中选择的内容 等 PasswordChar:文本框用于输密码时显示的符号 ControlSource:和控件绑定的内存变量或字段SelStart:编辑框中选定内容的开始位置SelLength:编辑框中选定内容的长度SelText:编辑框中选定的内容 ListCount:列表框中可供选择的内容数 List(1)表示列表框中的第一项内容,List(2)表示列表框中的第二项内容,……RowSourceType:列表框中内容的给出方式RowSource:列表框中内容来自的字段名等MultiSelect:1或.t.时允许多项选择 Selected(1)为真,第一项被选;Selected(2)为真,第二项被选;……。 Text:下拉列表框中输入的内容Recordsource:表格控件绑定的表PageCount:页框中页面的个数 Pages(1)表示页框中的第一个页面,Pages (2)表示页框中的第二个页面,……ActivePage:页框中的活动页面号Increment:微调每次的变化量SpinnerHighValue:鼠标调整时的最大值SpinnerLowValue:鼠标调整时的最小值KeyboardHighValue:键盘输入时的最大值KeyboardLowValue:键盘输入时的最小值Value:微调的当前值 Picture:图像控件对应的图像 Stretch:图像的显示方式 Interval:计时器定时的时间间隔,单位毫秒 ——事件—— Load:装入事件 Init:初始化事件 Destroy:表单关闭前发生的事件Unload:表单关闭时发生的事件Click:单击事件 DblClick:双击事件 RightClick:右键事件 GotFocus:得到焦点事件 LostFocus:失去焦点事件 Timer:计时器指定的时间间隔到时发生 Error:执行对象事件代码出错时发生——方法—— Release:关闭表单Refresh:表单刷新Show:显示表单Hide:隐藏表单SetFocus:将焦点放到控件中 AddItem(内容项):向列表框中增加数据项RemoveItem(位置):从列表框中删数据项

表单和控件测试题(6)

在下列VFP的基类中,无CAPTION属性的基类是_________ A. 标签 B. 文本框 C. 选项按钮 D. 复选框 解答:B 参考答案: B 2. 单选题:(1.0分) 将某个控件绑定到一个字段,移动记录后字段的值发生变化,这时该控件的_______属性的值也随之变化。 A. Value B. Name C. Caption D. 没有 解答:A 参考答案: A 3. 单选题:(1.0分) 用户在VFP中创建子类或表单时,不能新建的是 ______________. A. 属性 B. 方法 C. 事件 D. 事件的方法代码 解答:C 参考答案: C 4. 单选题:(1.0分) 如果要引用一个控制所在的直接容器对象,则可以使用下列_____属性。 A. THIS B. THISFORM C. PARENT D. 都可以 解答:C 参考答案: C 5. 单选题:(1.0分) 命令按钮中显示的文字内容,是在属性_______中设置的。 A. Name B. Caption C. FontName D. ControlSource 解答:B 参考答案: B

当用鼠标使组合框的内容发生变化时,将首先触发_______事件。 A. InteractiveChange B. Click C. Init D. DownClick 解答:A 参考答案: A 7. 单选题:(1.0分) 若要建一个有5个按钮的选项组,应将属性_____的值改为5。 A. Optiongroup B. Buttoncount C. BoundColumn D. ControlSource 解答:B 参考答案: B 8. 单选题:(1.0分) VFP系统环境下,运行表单的命令为_______。 A. DO FORM <表单名> B. REPORT FORM <表单名> C. DO <表单名> D. 只能在项目管理器中运行 解答:A 参考答案: A 9. 单选题:(1.0分) 建立事件循环的命令为______ 。 A. READ EVENTS B. CLEAR EVENTS C. DO WHILE……ENDDO D. FOR………ENDFOR 解答:A 参考答案: A 10. 单选题:(1.0分) 设有一个页框含有3个页面,其中第一个页面的名字为Page1,上面有二个命令按钮:CmdOk、CmdPrint,如果要在CmdPrint的Click事件中引用CmdOk的Click事件代码,则采用_______ 。 A. This.Parent.CmdOk.Click() B. Thisform.Page1.CmdOk.Click() C. This.CmdOk.Click() D. Thisform.CmdOk.Click() 解答:D 参考答案: A

表单设计-控件属性功能说明

表单设计-控件属性功能说明一.通用属性: 1.标题 功能介绍:对所要填写的内容做说明。 使用举例:物业地址,房源编号,租客姓名等。 2.描述信息 功能介绍:对标题信息的补充说明,可用颜色标红。 使用举例:请填写房源真实物业地址,请填写合同上的租客姓名等。

3.校验 功能介绍:限制字段内容是否为必填项,不填写无法提交。 4.字段权限 功能介绍:当前字段内容的是否可见/是否可编辑修改。

二.高级属性: 1.单行文本控件:格式 功能介绍:对输入内容进行限制, 限制的内容如图所示: 2.数字控件:仅允许填写整数 功能介绍:是否允许填写带小数的数字。 3.日期时间控件:类型包括日期/日期时间,默认值填写当天

功能介绍:日期是精确到日,日期时间是精确到秒,默认值自动生成填写当天的日期。 4.下拉选择框/单选按钮组控件:选项关联 功能介绍:通过选择不同选项来控制以下需要显示的内容。 使用举例:当退房时选择不同的退房类型,来设置不同的费用退款情况。 5.流水号控件:流水号规则 功能介绍:以下三种规则,自由组合,每走一条流程自动生成 自动计数:自动生成数字,自由配置重置周期,

提交日期:可显示提交日期,自由选择显示格式 固定字符:可自由设置显示内容,包括英文,中文,符号。 6.数字控件:公式编辑 功能介绍:可以在英文输入法模式下编辑公式,支持运算符号和函数编辑。 支持运算符号:加“+”,减“-”,乘“*”,除“/”, 函数:sum求和和if条件格式进行设置。 支持运算符号:大于“>”,小于“<”,等于“==”,不等于“!=”,大于等于“>=”,小于等于“<=”,括号“()”

VF中表单的常用属性在这里给大家惊情奉献哦

VF中表单的常用属性在这里给大家惊情奉献哦 设计时常用的表单属性,定义表单的外观和行为: 属性说明(默认值) AlwaysOnTop 控制表单是否总是处在其他打开窗口之上。(.F.) AutoCenter 控制表单初始化时是否让表单自动地在Visual FoxPro主窗口中居中。(.F.) BackColor 决定表单窗口的颜色。(255,255,255) BorderStyle 决定表单是否没有边框,还是具有单线边框、双线边框或系统边框。(3) Caption 决定表单标题栏显示的文本。(Form1) Closable 控制用户是否能通过双击“关闭”框来关闭表单。(.T.) DataSession 控制表单或表单集里的表是否能在可全局访问的工作区中打开,或仅能在表单或表单集所属的专有工作区内打开。(1) MaxButton 控制表单是否具有最大化按钮。(.T.) MinButton 控制表单是否具有最小化按钮。(.T.) Movable 控制表单是否能移动到屏幕的新位置。(.T.) ScaleMode 控制对象的尺寸和位置属性的度量单位是foxels还是像素。由“选项”对话框中的设置决定。 Scrollbars 控制表单所具有的滚动条类型。(0) TitleBar 控制标题栏是否显示在表单的顶部。(1) ShowWindow 控制表单是否在屏幕中、悬浮在顶层表单中或作为顶层表单出现。(0) WindowState 控制表单是否最小化、最大化还是正常状态。(0) WindowType 控制表单是否非模式表单(默认)还是模式表单。(0) 属性一览表 Activate Event 当表单集、表单或页对象激活时、或显示工具栏对象时发生。ActiveControl 引用一个对象上的活动控件。 ActiveForm 引用表单集或_SCREEN对象中的活动表单对象。Addobject 在运行时向容器对象中添加一个对象。 AddProperty 向对象添加新属性。 Alignment 控件上正文水平对齐方式。 AlwaysOnBottom 防止其他窗口被表单窗口覆盖。 AlwaysOnTop 防止其他窗口遮挡表单。 Autocenter 指定Form对象在首次显示时,是否自动在VFP主窗口内居中。 AutoSize 控件是否根据正文自动调整大小。 BackColor 指定对象内文本和图形的背景色。 BackStyle 设置背景风格。 BaseClass 指定VFP基类的类名,被引用对象由此基类派生得到。BorderStyle 指定对象的边框样式。

listview控件各种属性

listview控件各种属性详细介绍 listview控件可有4种不同的视图显示方法,跟“资源管理器”里的“查看”方式相似: (1)无图标;(2)小图标;(3)列表;(4)报表式。 使用哪种视图,可由该控件的view属性设置控制。其中“报表”视图用来显示记录数据很适合。 listview控件包括listItem对象和ColumnHeader对象。 本人简单理解为:listItem对象看成数据行;ColumnHeader对象看成列标题。 listItem对象(行)有两部分:一部分是图标和简要描述的文本(第1列);另一部分是前者的子项文本信息(第2列,第3列......)。 而listItems即是对listItem对象集合(所有行)的引用。 故此,listItems(1) 可以表示为第1行; listitems(1).text 返回第1行第1列的文本值; listitems(1).subItem(1) 返回第1行第2列的文本值。 【控件常用属性】 [1]view属性 该属性有4个值可设定: 1---小图标视图显示 2---列表 3---报表 0---无图标(默认) [2]AllowColumnReorder属性 值设置.t.时,用户可以用鼠标选中1列拖至其他地方进行重新排列。 [3]Checkboxes属性 设置为.t.时,每一行数据前将显示一复选框。 [4]FlatScrollBar属性 设置为.f.时控件将显示滚动条。

[5]FullRowSelect属性 设置为.t.时可以整行地选择数据。 [6]GridLines属性 设置为.t.时控件将显示网格线。(只作用于“报表”视图) [7]HideColumnHeaders属性 设置为.f.时,列标题可视,反之则不可视。 [8]HotTracking属性 设置为.t.时,鼠标所在行将以高亮度显示。 [9]Icons,SmallIcons属性 两者设置listview控件视图相关联的ImageList控件中的图片。 Icons指明视图为大图标时的关联; SmallIcons指明视图为小图标时的关联。 [10]LabelWrap属性 设置为.t.时,文本标签超出列宽时可换行。 [11]SelectedItem属性 返回对所选ListItem对象(行)的引用。 [12]Sorted属性 当值为.t.时,列表按字母排序。按照一定的顺序排列 [13]Picture属性 指定控件的背景图片,此属性在控件自带属性设置框里设置。 ***************************************************************** 【控件常用方法程序】 [1]Add方法 添加listItem对象(行)到控件中。 语法格式: 控件ListItems集合.add(index,key,text,icon,smallIcon) [2]FindItem方法 查找并返回对控件中listItem对象的引用。 语法格式: 控件名.FindItem(string,value,index,match) ****************************************************************** 新建一表单,在表单里拖出一个ListView控件和一个ImageList控件。 选中ListView控件,单击右键,选择“ListViewCtrl Properties”,在General页面框中选中下列复选框:

vf表单控件属性集合

Visual Foxpro 6.0程序设计 第八章表单控件 概述 输出类:标签、图像、线条、形状 输入类:文本框、编辑框、微调控件、列表框、组合框 控制类:命令按钮、命令按钮组、复选框、 选项按钮组、计时器 多重容器类:表格、页框、Container容器、表单集 连接类:ActiveX绑定控件、超级链接控件、ActiveX控件 标签Label 标签控件的作用 用来显示一些说明信息、对象标题等。第一个标签的默认名(Name属性)为Label1 标签Label(续) 常用属性 Caption 指定标题,使用字符常量设置该属性时,若在 代码窗口,需定界符,在属性窗口则不用。 AutoSize 根据内容多少自动改变大小(值.T.或.F.) WordWarp 自动换行(值.T.或.F.) BackStyle 透明(值0)或不透明(值1) BorderStyle 无边框(值0)或单线框(值1) 标签控件的常用设置为:大小自动适应、背景透明 图像Image 图像控件的作用 用于显示图片,支持的图片文件类型有.bmp, .jpg, .ico, .gif等。 第一个图像控件的缺省名为Image1。 常用属性 Picture 指定图像文件名 Stretch 调整图像以适应控件大小的方式 剪裁(值0)、等比例填充(1)、变比填充(2) 线条Line 线条控件的作用 用来创建直线或斜线对象。第1个线条的默认名为Line1 创建直线

设置Height为0(水平线)或Width为0(垂直线) 或调节控制点使上下边或左右边重合 创建斜线 斜线方向由LineSlant属性(\或/)决定 线条Line(续) 线条控件的常用属性 BorderColor 线条颜色 BorderStyle 线条样式:0透明,1实线,2虚线,3点线, 4点划线,5双点划线,6内实线 BorderWidth 线宽为多少像素点 Width 对象宽度 Height 对象高度 LineSlant 线条斜线方向:斜扛(\)或反斜扛(/) 形状Shape 形状控件的作用 创建圆、椭圆、正方形、矩形等几何形状。第一个形状的默认名(Name属性)为Shape1 常用属性 Curvature 从0(直角)到99(圆或椭圆)的一个值 FillStyle 对象透明或使用填充图案 SpecialEffect 平面(值1)或三维(值0) (仅Curvature为0时有效) 正方形:Width与Height相等且Curvature=0 矩形:Width与Height不相等且Curvature=0 圆:Width与Height相等且Curvature=99 小圆角正方形→大圆角正方形→圆: Width与Height相等且Curvature=1~99 小圆角矩形→大圆角矩形→椭圆: Width与Height不相等且Curvature=1~99 文本框Text 文本框控件的作用 供用户显示、输入或编辑数据。 它允许用户添加或编辑保存在表中非备注字段中的数据。 第一个文本框的默认名为Text1。 与标签的区别 标签没有数据源 标签不能直接编辑 标签不能用tab键选择 在程序中引用或更改文本框中显示的文本 1.设置或引用Value属性。 Value的初始值决定了文本框中的数据类型

VFP6表单及控件属性一览表

VFP6表单及控件属性一览表 Activate Event 当表单集、表单或页对象激活时、或显示工具栏对象时发生。ActiveControl 引用一个对象上的活动控件。 ActiveForm 引用表单集或_SCREEN对象中的活动表单对象。 Addobject 在运行时向容器对象中添加一个对象。 AddProperty 向对象添加新属性。 Alignment 控件上正文水平对齐方式。 AlwaysOnBottom 防止其他窗口被表单窗口覆盖。 AlwaysOnTop 防止其他窗口遮挡表单。 Autocenter 指定Form对象在首次显示时,是否自动在VFP主窗口内居中。AutoSize 控件是否根据正文自动调整大小。 BackColor 指定对象内文本和图形的背景色。 BackStyle 设置背景风格。 BaseClass 指定VFP基类的类名,被引用对象由此基类派生得到。BorderStyle 指定对象的边框样式。 Box 在表单对象上绘制矩形。 BufferMode 指定记录是保守式更新还是开放式更新。 Caption 指定对象标题文本。 Circle 在表单上绘制圆或弧。 Class 返回派生对象的类的类名。 ClassLibrary 指定用户自定义类库的文件名,该类库包含对象的类。 Click Event 当用户在一个对象上按下并释放鼠标按钮时,或用编程方式触发该事件时发生 ClipControls 指定在Paint事件中,图形方法程序是否会重画整个对象,并且是否创建将非图形控件排除在外的剪切区域。 Closable 指定能否通过双击窗口菜单图标来关闭表单。 Cls 清除表单中的图形和文本。 Color Source 指定控件颜色的设置方式。 Comment 存储对象的有关信息。 ContinuousScroll 指定表单是平滑地滚动还是只在释放滚动框后才重绘。 ControlBox 指定在运行时刻表单或工具栏的左上角是否显示菜单图标。ControlCount 指定容器对象中控件的数目。 Controls 用于存取容器对象中控件的数组。 CurrentX 指定下一个绘图方法程序的水平坐标。 CurrentY 指定下一个绘图方法程序的垂直坐标。 DataSession 指定表单、表单集或工具栏能否在自己的数据工作期中运行,并拥有独立的数据环境。 DataSessionID 返回数据工作期标识,该标识用于识别表单集、表单或工具栏的私有数据工作期 Dblclick Event 当用户连续快速地按住并释放左(主)鼠标按钮时发生。 Deactivate Event 当一个容器对象如表单,由于其所含对象没有焦点而不再活动时发生。DefoleLCID 指定在此表单上创建的ActiveX控件和可插入对象的默认本地ID,如果该值为零,SYS(3004)将指定默认的本地ID。

表单控件常用属性

设置属性两种方法: 1、属性窗口(特殊操作:设置为默认值,方法:在属性值后击右键,重置默认值) 2、语句:Thisform.控件名.属性名=属性值 例如:Thisform.Text1.V alue=”你好” 公共属性 控件名Name 标题Caption 前景色ForeColor 背景色BackColor 宽度Width 高度Height 左边距Left 顶边距Top 对齐方式Alignment 字体名FontName 字号FontSize 是否加粗FontBold 是否倾斜FontItalic 是否有删除线FontStrikethru 是否有下划线FontUnderline 是否可见Visible 是否可用Enabled 边框样式BorderStyle 背景样式BackStyle 焦点顺序TabIndex 标签 Name Caption 命令按钮 Name Caption 回车有效Default Esc有效Cancel 访问键Caption=”\

Name 标题Caption 是否有最大化按钮MaxButton 是否有最小化按钮MinButton 顶层表单ShowWindow 是否居中AutoCenter 是否可以移动Movable 窗体类型WindowType .T.模式 数据环境 利用“布局工具栏”对控件进行布局 “显示”菜单中的“布局工具栏”用法:先选择需要布局的多个控件,再执行“布局工具栏”中的命令。 为表单新增方法,并为新建立的方法编写代码。 例如:新建方法abc 为其编写代码?123 双击abc,弹出窗口输入代码?123 表单向导 单表 一对多

Form常用属性

Form常用属性 (1)Name属性:用来获取或设置窗体的名称。 (2)WindowState属性:用来获取或设置窗体的窗口状态。 (3)StartPosition属性:用来获取或设置运行时窗体的起始位置。 (4)Text属性:该属性是一个字符串属性,用来设置或返回在窗口标题栏中显示的文字。(5)Width属性:用来获取或设置窗体的宽度。 (6)Heigth属性:用来获取或设置窗体的高度。 (7)Left属性:用来获取或设置窗体的左边缘的x 坐标(以像素为单位)。 (8)Top属性:用来获取或设置窗体的上边缘的y 坐标(以像素为单位)。 (9)ControlBox属性:用来获取或设置一个值,该值指示在该窗体的标题栏中是否显示控制框。 (10)MaximumBox属性:用来获取或设置一个值,该值指示是否在窗体的标题栏中显示最大化按钮。 (11)MinimizeBox属性:用来获取或设置一个值,该值指示是否在窗体的标题栏中显示最小化按钮。 (12)AcceptButton属性:该属性用来获取或设置一个值,该值是一个按钮的名称,当用户按ENTER 键时就相当于单击了窗体上的该按钮。 (13)CancelButton属性:该属性用来获取或设置一个值,该值是一个按钮的名称,当用户按ESC键时就相当于单击了窗体上的该按钮。 (14)Modal属性:该属性用来设置窗体是否为有模式显示窗体。 (15)ActiveControl属性:用来获取或设置容器控件中的活动控件。 (16)ActiveMdiChild属性:用来获取多文档界面(MDI)的当前活动子窗口。 (17)AutoScroll属性:用来获取或设置一个值,该值指示窗体是否实现自动滚动。 (18)BackColor属性:用来获取或设置窗体的背景色。 (19)BackgroundImage属性:用来获取或设置窗体的背景图像。 (20)Enabled属性:用来获取或设置一个值,该值指示控件是否可以对用户交互作出响应。(21)Font属性:用来获取或设置控件显示的文本的字体。 (22)ForeColor属性:用来获取或设置控件的前景色。 (23)IsMdiChild属性:获取一个值,该值指示该窗体是否为多文档界面(MDI) 子窗体。(24)IsMdiContainer属性:获取或设置一个值,该值指示窗体是否为多文档界面(MDI) 中的子窗体的容器。 (25)KeyPreview属性:该属性用来获取或设置一个值,该值指示在将按键事件传递到具有焦点的控件前,窗体是否将接收该事件。 (26)MdiChildren属性:数组属性。 (27)MdiParent属性:该属性用来获取或设置此窗体的当前多文档界面(MDI) 父窗体。(28)ShowInTaskbar属性:该属性用来获取或设置一个值,该值指示是否在Windows 任务栏中显示窗体。 (29)Visible属性:该属性获取或设置一个值,该值指示是否显示该窗体或控件。 (30)Capture属性:如果该属性值为true,则鼠标就会被限定只由此控件响应,不管鼠标是否在此控件的范围内。 (1)Show方法 该方法的作用是让窗体显示出来,其调用格式为: 窗体名.Show(); (2)Hide方法

vfp常用的表单控件

标签(Label)控件 可以编写代码来改变Label控件显示的文本,以响应运行时的事件。例如,如果一个应用程序要几分钟时间作改动,则可以显示Label 中的进程状态信息。还可以使用Label 来标识控件,例如TextBox控件没有自己的Caption属性,这时就可以使用Label 来标识这个控件。 在Label控件中定义访问键时,就可以按ALT + 设定的字符来把焦点移动到TAB 键顺序中的下一个控件。 常用的标签属性 ?Caption属性 当创建一个新的对象时,其缺省标题为缺省的Name 属性设置。该缺省标题包括对象名和一个整数,如Command1 或Form1。为了获得一个描述更清楚的标签,应对Caption 属性进行设置。 可以使用Caption属性赋予控件一个访问键。在标题中,在想要指定为访问键的字符前加一个(\<) 符号。比如,下面代码在为标签设置Caption属性的同时,指定了一个访问键“x”: ThisForm.MyLabel.Caption="选择项目(\

常用表单控件.

11.3 常用表单控件 1 标签 标签是能在表单上显示文本内容的控件,常用来显示提示信息。 2 文本框 文本框控件是一种基本控件允许用户输入和编辑数据。 3 命令按钮与命令按钮组 1)命令按钮 命令按钮在程序中起控制作用,用于完成某些特定的操作,如表单的关闭、操作的确认等。其代码通常是放置在Click事件中。命令按钮常用属性如表所示。 2)命令按钮组 命令按钮组是一种容器控件,它可以包含多个命令按钮,但命令按钮组与组内的命令按钮都有自己的属性、事件和方法。命令按钮组常用属性如表所示。 11.3.1标签控件 序号属性说明默认值 1 Caption 指定标签用来显示的文本Label1 2 BorderStyle 设置标签的边框。0-无,1-固定单线0-无(默认) .F.-否(默认) 3 AutoSize 设置是否自动调节标签的大小。.F.-否,.T.- 是 4 BackStyle 设置标签是否透明。0-透明,1-不透明1-不透明(默认) 5 Visible 设置标签是否可见。.T.-是,.F.-否.T.-是(默认) 6 Name 标签的名称Label1 7 WordWrap 设置标签中显示的文本是否可以换行.F. 11.3.2 命令按钮与命令按钮组控件 可以将命令按钮组成一组,对组中的按钮即可单独操作,也可作为一个组来统一操作。设计者可以为组中的每个按钮单独设计事件代码,也可以为整个按钮组设计一个事件代码,当一个事件(如Click)在组中的某个按钮上发生时,命令按钮组的 Value 属性指明该事件发生在哪个按钮。 命令按钮常见的属性 序号属性说明默认值 1 Name 命令按钮的名称Command1 2 Caption 命令按钮的标题Command1 3 Enabled 设置命令按钮是否可以被选择.T. 4 Picture 设置命令按钮上显示的图形无 11.3.3 文本框控件与编辑框控件 文本框是用来在应用系统与用户之间进行数据交互的一种常用工具,它允许用户添加或编辑保存在表中非备注字段中的数据。 编辑框也是用来输入用户的数据的。在编辑框中允许用户编辑长字段或备注字段文本,允许自动换行并能用方向键、PageUp 和 PageDown 键以及滚动条来浏览文本。 文本框主要属性:

相关主题
文本预览
相关文档 最新文档