VBListView控件用法

VBListView控件用法
VBListView控件用法

VB ListView控件用法集合

ListView控件比前面几种控件要复杂一些,通过此控件,可将项目组成带有或不带有列标头的列,并显示伴随的图标和文本。ListView控件是由ColumnHeader和ListItem对象所组成的,其中ColumnHeader对象的个数决定了控件的列数,而ListItem对象的个数则决定了控件的行数。(图7)

ColumnHeader对象是ListView控件中包含标头文字的项目。利用ColumnHeader对象,用户可以:

▲单击对象触发ColumnClick事件并根据数据项目将项目排序。

▲拖动对象的右边框来调整列宽度。

▲在报表视图中隐藏ColumnHeader对象。

ColumnHeader对象的数目决定每个ListItem对象可包含的子项目数目。删除ColumnHeader对象后所有与列关联的子项目也将被删除,并且每个ListItem对象的子项目数组将平移以更新ColumnHeader的索引,而这将导致剩余的列标头SubItemIndex属性的改变。

ColumnHeader对象的SubItemIndex属性

该属性返回与ListView控件中ColumnHeader对象关联的子项目的索引。子项目是字符串数组,代表显示在报表视图中的ListItem对象的数据。第一列的列标头SubItemIndex 属性设置为0,这是因为小图标和ListItem对象的文字总出现在第一列中,而且它们被当作ListItem对象而不是子项目。列标头数目取决于子项目数目。列标头数目总是比子项目数目多1。

在设计时可以利用属性页的“列首”选项卡将ColumnHeader对象添加到ListView控件中,在运行时则用Add方法添加。

ColumnHeader对象的Add方法

该方法的使用与前面那些控件基本相似,就不再介绍了。

ListView1.ColumnHeader.Add(index,key,text,width,alignment)

ListItem对象是指控件中的一行(不包含标头行)的所有内容。它也可包含文本和图片,但是要使用图片则必须通过Icons和SmallIcons属性引用ImageList控件。

ListItem对象的SubItems属性

返回或设置一个字符串(子项目)数组,它代表ListView控件中ListItem对象的数据。

ListItem对象可包含任意多个的关联项目数据字符串(子项目),但每个ListItem对象子项目数目必须相同。每个子项目都对应于相关的列标头,无法直接向子项目数组添加元素,只有通过ColumnHeaders的Add方法添加列标头的方法来添加子项目。

ListItem对象的Add方法

该方法添加ListItem对象到ListView控件的ListItems集合中并返回对新创建对象的引用。

它的语法如下:

ListItem1.Add(index,key,text,icon,smallIcon)

ListView控件的View属性

ListView控件可使用四种不同视图显示项目,这可以用View属性来确定。该属性返回或设置ListView控件中ListItem对象的外观。

ListView控件的SortOrder,SortKey和Sorted属性

控件中的ListItem对象可以按要求进行排序,与排序有关的属性是SortOrder,Sorted 和SortKey属性。

SortOrder属性返回或设置一个值,此值决定ListView控件中的ListItem对象以升序或降序排序。

SortKey属性返回或设置一个值,此值决定ListView控件中的ListItem对象如何排序。

Sorted属性返回或设置确定ListView控件中的ListItem对象是否排序的值。

下面的代码说明了如何创建ColumnHeaders和ListItem对象,SubItemIndex和SubItem属性的使用方法以及如何排序。

Private Sub Form_load()

'确保ListView控件的view属性为报表视图。

ListView1.View=lvwReport

'添加三列。

ListView1.ColumnHeaders.Add,"Name","姓名"

ListView1.ColumnHeaders.Add,"Sex","性别"

ListView1.ColumnHeaders.Add,"Age","年龄"

'向控件添加ListItem对象。

Dim itmX As ListItem

'添加column1的名称。

Set itmX=ListView1.ListItems.Add(1,"ZL","张力")

'使用SubItemIndex将SubItem与正确的ColumnHeader关联。使用关键字("Sex")指定正确的ColumnHeader。

itmX.SubItems(ListView1.ColumnHeaders("Sex").SubItemIndex)="男"

'使用ColumnHeader关键字将SubItems字符串与

'正确的ColumnHeader关联。

itmX.SubItems(ListView1.ColumnHeaders("Age").SubItemIndex)="19"

Set itmX=ListView1.ListItems.Add(1,"LF","李芳")

itmX.SubItems(ListView1.ColumnHeaders("Sex").SubItemIndex)="男"

itmX.SubItems(ListView1.ColumnHeaders("Age").SubItemIndex)="22"

Set itmX=ListView1.ListItems.Add(1,"WW","王伟")

itmX.SubItems(ListView1.ColumnHeaders("Sex").SubItemIndex)="男"

itmX.SubItems(ListView1.ColumnHeaders("Age").SubItemIndex)="24"

End Sub

Private Sub ListView1_ColumnClick(ByVal ColumnHeader As

ComctlLib.ColumnHeader)

Select Case ColumnHeader.Key

Case "Sex":ListView1.SortKey=1

ListView1.SortOrder=lvwAscending

ListView1.Sorted=True

Case "Age":ListView1.SortKey=2

ListView1.SortOrder=lvwAscending

ListView1.Sorted=True

End Select

End Sub

七、带刻度滑块---Slider

Slider控件是一个包含滑块和可选择性刻度标记的窗口,可以通过拖动滑块,用鼠标单击滑块的任意一侧或者使用键盘移动滑块来选择一个值。

在选择离散数值或某个范围内的一组连续数值时,Slider控件十分有用。例如,无需键入数字,通过将滑块移动到刻度标记处,可以用Slider控件来输入数值。

Silder控件的大多数基本属性比较简单,我们这里重点介绍一些较有用而又常易忽略的属性。

TickStyle属性

该属性返回或设置Slider控件上显示的刻度标记的样式。

SelectRange,SelStart和SelLength属性

Slider控件可以选择某个范围内的数值,这就要用到SelectRange,SelStart和SelLength属性。

SelectRange属性决定Slider控件是否可以选择一个范围。如果SelectRange属性为True,SelStart为选定范围的起始值,SelLength为选定范围的长度。

如果SelectRange属性为False,则SelStart属性的设置值与&#118alue属性的设置值相同,SelLength属性无效。

下列代码允许在按住SHIFT键时,用鼠标拖动或单击Slider控件以选择一个范围。Private Sub Form_Load()

'设置slider控件的设置值

Slider1.Max=20

End Sub

Private Sub Slider1_MouseDown(Button As Integer,Shift As Integer,x As Single,y As Single)

If Shift=1 Then '如果按住Shift键,则Slider1.SelectRange=True '打开SelectRange。Slider1.SelStart=Slider1.&#118alue'设置SelStart数值

Slider1.SelLength=0'设置先前的SelLength(如存在)为0。

End If

End Sub

Private Sub Slider1_MouseUp(Button As Integer,Shift As Integer,x As Single,y As Single) if Shift=1 Then

'如果在一点决定返回上一步,将发生错误。

On Error Resume Next

'否则使用SelStart和当前数值设置SelLength。

Slider1.SelLength=Slider1.&#118alue-Slider1.SelStart

Else

Slider1.SelectRange=False'如果松开SHIFT键。

End If

End Sub

在程序中,常用Slider控件来代替键盘输入数字,如下面的例子。

该例通过Slider控件来显示不同的长度。

Private Sub Form_Load()

Slider1.Min=0

Slider1.Max=50

Slider1.SmallChange=1

https://www.360docs.net/doc/379696009.html,rgeChange=10

Slider1.TickFrequency=5

End Sub

Private Sub Slider1_Change()

Label1.Caption="长度是"&Format(Slider1.&#118alue/5,"#.00")&"厘米"

End Sub

==================

一、ListView使用简介

ListView控件是VB开发者非常喜爱的控件之一。作为Windows95公共控件组(COMCTL32.OCX)的成员,它经常与经常与TreeView、ImageList等控件联合使用。即用TreeView显示一个的树型结构,而用ListView显示选中的节点(Node)对象的记录集。

这是笔者在开发财务软件项目中的<<凭证管理>> 模块的一个用户界面。屏幕左边是一个TreeView控件,用来显示会计凭证的类别;右边是一个ListView,用来显示对应类别的凭证目录;上方是一个菜单条控件(MenuBar)和一个工具条控件(ToolBar);下方是一个状态栏控件(StatusBar),用来显示凭证数个当前日期。

大家可以看到图中所示的界面非常类似于Window95/98 的资源浏览器,Windows的界面风格做为一种标准已为广大用户所接受。而Windows操作系统的主要的优点就是为所有的应用程序提供了公用的界面。知道如何使用基于Windows的应用程序的用户,很容易学会使用其他应用程序。

这种使用Windows95公共控件组合的方法能够达到与Windows界面的一致性,所以在目前VB5.0应用程序的开发中经常使用。

二、填充大量结果集所遇到的问题

在实际应用开发中,经常用ListView填充一个数据库结果集(Record set)的内容。即先写一段SQL查询语句,产生一个结果集,然后将结果集的每一条记录用DO...LOOP循环语句中填到ListView中。

但是当结果集很大时(例如有5000条以上的记录) ,填充所需要的时间会很长。用户不

得不等很长时间完成一个查询。所以在查询的过程中必须允许用户按Escape键退出。具体做法是在DO...LOOP循环体中加一条DoEvents函数,并写一段中断退出程序代码。

DoEvents函数的功能是:转让控制权,以便让操作系统处理其它的事件。这样在长时间的查询过程中,如果用户按了Escape键,将退出循环体,结束查询过程。

但是这样又会引发另外一个问题:由于DoEvents 可以让操作系统响应别的事件,循环体中填充每一条ListView项目(ListItem)的过程也会显示出来,所以在填充的过程中屏幕会不停的闪动,这种现象当然不能被用户所接受。如何解决这个问题呢?

三、解决方案

用WindowsAPI函数可以解决这个问题。首先对几个用到的API函数做一解释和说明。

1.GetClientRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long

此函数的功能是获得一个指定对象窗口(Window) 的矩型框区域(rectangle)。

Hwnd为指定对象或窗体的句柄。LpRect为返回矩型框的结构(必须定义为结构类型的变量)。

2.ValidateRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long

此函数的功能是使指定的矩型区域生效。这样会通知Windows不必对指定的区域进行重画(Redraw)。

3.InvalidateRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT, ByVal bErase As Long) As Long

此函数的功能是使指定的矩型区域无效。这样会通知Windows要对指定的区域进行重画。

具体实现的步骤如下:

1.在填充结果集之前先用GetClientRect函数获得ListView的显示区域。

2.在增加完一个显示项目(ListItem)后用ValidateRect 函数置这一区域为有效。这样Windows就不会显示每一条ListItem,屏幕闪动的现象就会消失。

3.在填充结果集之后,用InvalidateRect函数置这一区域为无效。这样Windows就会重画ListView的内容,结果集被完整的显示出来。

下面是笔者在项目开发中的一个程序实例。程序名为FillListView。该程序将填写一个Access数据库(FISCAL.MDB)的凭证表(Table)的内容到ListView中。

首先进入VB5.0,新建一个窗体(Form),名为Form1。

然后在Form中增加下列控件。

控件名Name

ListView Lvw

Imagelist imlList

Command Button。Command1

将ImageList控件中充填一个名为“item”的图象后与ListView控件关联。

在<<工程>>菜单命令条中进入“引用”对话框,选择“MicrosoftDAOObjectLibrary”

在Form的通用模块(Modle)中定义以下变量。

Private Type RECT ' 用来定义一个区域的坐标。

Left As Long

Top As Long

Right As Long

Bottom As Long

End Type

'- -

' Windows API 函数的声明。

Private Declare Function InvalidateRect Lib "user32"

(ByVal hwnd As Long, lpRect As RECT, ByVal bErase As Long) As Long

Private Declare Function ValidateRect Lib "user32"

(ByVal hwnd As Long, lpRect As RECT) As Long

Private Declare Function GetClientRect Lib "user32"

(ByVal hwnd As Long, lpRect As RECT) As Long

Dim mbSearchCancel As Boolean

' 用来定义查询中断的标志。

' True 表示中止查询;False 表示正在查询。

将该Form 的KeyPreview 属性设为True,以控制窗体接收键盘事件。

然后在Form 的KeyPress 事件中写下列代码:

If KeyAscii = vbKeyEscape Then

mbSearchCancel = True

' 当用户按Escape 键时,置mbSearchCancel 变量为True。

End If

' 表示结束查询。

在Command Button 的Click 事件中调用填充子程序:Call FillListView。

子程序的代码为:

Private Sub FillListView()

'

Dim itmX As ListItem ' 定义一个ListView 的显示项目。

Dim sSQL As String ' 查询字串变量。

'

Dim rc As RECT ' ListView 的显示区域。

Dim wrkJet As Workspace ' 数据库工作空间。

Dim dbFISCAL As Database ' 数据库对象。

Dim RS As Recordset ' 数据结果集。

On Error GoTo ErrFillListView

Screen.MousePointer = vbHourglass

lvw.ListItems.Clear: ' 清除ListView 的内容。

'

' 定义ListView 的列头的名称。

With lvw.ColumnHeaders

.Add , , " 凭证编号", 800

.Add , , " 凭证日期", 1000

.Add , , " 凭证字号", 1000

.Add , , " 凭证类别", 800

.Add , , " 首行摘要", 1440

.Add , , " 借方金额合计", 1000, lvwColumnRight

End With

'- - -

' 产生查询语句。

sSQL = "select voucher_id,voucher_number,voucher_date,voucher_type_shortname," sSQL=sSQL&"voucher_type_name,voucher_memo,voucher_amount from VOUCHER" sSQL = sSQL & "order by voucher_number"

' '- - -

' 打开一个数据库结果集。

Set wrkJet = CreateWorkspace("NewJetWorkspace", "admin", "", dbUseJet)

Set dbFISCAL = wrkJet.OpenDatabase("FISCAL.mdb")

Set RS=. dbFISCAL .Open sSQL,dbOpenForwardOnly

'

' 获得listview 的显示区域。

Call GetClientRect(lvw.hwnd, rc)

Do While Not RS.EOF()

DoEvents

If mbSearchCancel Then

' 中断退出

RS.Close: Set RS = Nothing ' 关闭、清除结果集。

mbSearchCancel = False

Screen.MousePointer = vbDefault

'- -

' 刷新ListView 的内容,显示已经查出的记录数。

Call InvalidateRect(lvw.hwnd, rc, True)

Exit Sub

End If

'- - -

' 增加一个显示项目ListItem。

With lvw.ListItems

Set itmX = .Add(, , "" & RS!voucher_number, "item", "item")

' 凭证编号

itmX.SubItems(1) = Format$("" & RS!voucher_date, "yyyy/mm/dd") ' 凭证日期

itmX.SubItems(2) = "" & RS!voucher_type_shortname & "-" —

' 凭证字号

& "" & RS!voucher_number

itmX.SubItems(3)="" & RS!voucher_type_name

' 凭证类别

itmX.SubItems(4)=""&RS!voucher_memo

' 首行摘要

itmX.SubItems(5)= Format$("" & RS!voucher_amount, "#,###.00") ' 借方合计金额

itmX.Tag = "" & RS!voucher_id

End With

'- -

' 避免显示区域的闪动现象。

Call ValidateRect(lvw.hwnd, rc)

RS.MoveNext

Loop

'

'- 刷新ListView 的内容。显示所有查出的记录数。Call InvalidateRect(lvw.hwnd, rc, True)

'-

' 关闭、清除结果集。

RS.Close: Set RS = Nothing

creen.MousePointer = vbDefault

Exit Sub

ErrFillListView:

Screen.MousePointer = vbDefault

MsgBox Err & ":" & Error, vbInformation, Me.Caption

Exit Sub

End Sub

编写完毕后按F5 执行该程序,用鼠标点击CommandButton,将开始查询并填写凭证的内容到ListView 中去。

ListView1.ColumnHeaders.Add , "Name", "姓名"

ListView1.ColumnHeaders.Add , "Sex", "性别"

Set itmX = ListView1.ListItems.Add("1", "zl", "张力")

itmX.SubItems(ListView1.ColumnHeaders("Sex").SubItemIndex) = "男

mscomm控件的使用和安装

一、引言 目前,在用计算机进行数据传输时,常用的是串行通信方式。用C++Builder来编写串行通信程序时,可以调用Windows API函数,也可以利用VB中的MSComm控件。利用API函数编写实际应用程序时,往往要考虑多线程的问题,这样编出来的程序不但十分庞大,而且结构比较复杂,继承性差,维护困难。但是使用串行通信控件就相对简单一些,而且功能强大,性能安全可靠。本文就简单的介绍一下在C++ Builder中利用MSComm 控件进行编程。 二、MSComm控件的常用属性和事件 MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。具体的来说,它提供了两种处理通信问题的方法:一是事件驱动(Event-driven)方法,一是查询法。 事件驱动方式 在使用事件驱动法设计程序时,每当有新字符到达,或端口状态改变,或发生错误时,MSComm控件将解发OnComm事件,而应用程序在捕获该事件后,通过检查MSComm控件的CommEvent属性可以获知所发生的事件或错误,从而采取相应的操作。这种方法的优点是程序响应及时,可靠性高。 查询方式 查询方式实质上还是事件驱动,但在有些情况下,这种方式显得更为便捷。在程序的每个关键功能之后,可以通过检查CommEvent 属性的值来查询事件和错误。如果应用程序较小,并且是自保持的,这种方法可能是更可取的。 1.MSComm 控件的常用属性 CommPort属性:设置或返回通讯端口号,可以设置为1到16之间的任何值,本系统采用缺省值2; Settings属性:以字符串形式设置或返回波特率、奇偶校验、数据位和停止位,本系统采用缺省值"9600,n,8,1"; PortOpen属性:设置或返回通讯口的状态以及打开和关闭端口,可通过把该属性设置为true或者false来打开或者关闭端口; InBufferSize和OutBufferSize属性:分别设置接收和发送缓冲区分配的内存数量,单位为字节,缺省值分别为1024byte和512byte; InputLen属性:确定希望从接收缓冲区移出的字符数量,当InputLen=0时,一次把接收缓冲区的字符全部移出;

C_中的ListView控件实例教程

C#中的ListView控件实例教程 ListView可以通过四种不同的方式显示条目。 1.只能给ListV iew控件添加基于ListViewItem类的对象; 2.ListViewItems属性:设置用于显示的属性;3.SubItems()方法:包含详细视图中显示的文本; 4.V iew属性:设置以下 ListView可以通过四种不同的方式显示条目。 1.只能给ListView控件添加基于ListViewItem类的对象; 2.ListV iewItems属性:设置用于显示的属性; 3.SubItems()方法:包含详细视图中显示的文本; 4.View属性:设置以下四种显示方式: Details:详细信息; List:列表; LargeIcon:大图标; SmallIcon:小图标。 5.Details视图需要为Columns属性使用Add()方法添加列。 例一: namespace ListViewExercise { public partial class Form1 : Form { public Form1() { InitializeComponent(); ListViewSet(); CreateViewItemMethodOne(); //CreateViewItemMethodTow(); } ///

/// ListView 设置 ///

private void ListViewSet() { //ListView显示方式 listViewControl.View = V iew.Details; } ///

/// //手动填加ListV iew方法1 /// private void CreateViewItemMethodOne() { listViewControl.BeginUpdate(); #region 增加Item的标题,共有三个列 //1、创建标题 listViewControl.Columns.Add("文件名"); listViewControl.Columns.Add("大小"); listViewControl.Columns.Add("创建日期"); #endregion #region 手动填加ListView方法 //2、增加第一个Item,在V iew.Details模式下,有点像第一列中一个值listViewControl.Items.Add("folder1","文件夹1",0); //3、增加第一个Item的第一个SubItem,在V iew.Details模式下,有点像第一列中一个值 listViewControl.Items["folder1"].SubItems.Add("11"); //增加第一个Item的第二个SubItem,在V iew.Details模式下,有点像第一列中一个值 listViewControl.Items["folder1"].SubItems.Add("20080114"); listViewControl.Items.Add("folder2","文件夹2",0); listViewControl.Items["folder2"].SubItems.Add("21"); listViewControl.Items["folder2"].SubItems.Add("20080115"); listViewControl.Items.Add("文件夹3"); listViewControl.Items.Add("文件夹4"); #endregion listViewControl.EndUpdate(); } /// /// 手动填加ListView方法2 /// private void CreateViewItemMethodTow() { #region 增加Item的标题,共有三个列 //1、创建标题,共三列 listViewControl.Columns.Add("文件名"); listViewControl.Columns.Add("大小"); listViewControl.Columns.Add("创建日期");

C#中ListView控件应用实例

C#中 ListView 控件应用实例
ListView 控件 1. 功能 ListView 控件可以显示带图标的项列表,用户可使用该控件创建类似 Windows 资源管理器的用户界面。ListView 控件具有 4 种视图模式: (1)仅文本,这是默认视图,此视图下,只显示列表项的文本; (2)带有小图标的文本,此视图下,小图标随列表项的文本同时显示; (3)带有大图标的文本,此视图下,大图标随列表项的文本同时显示; (4)报表视图,此视图下,列表项显示在多个列中。 图 1 为 List View 控件。
图1
ListView 控件
2.属性 ListView 控件常用属性及说明如表 1 所示。
表1
ListView 控件常用属性及说明
下面对比较重要的属性进行详细介绍。 (1)View 属性。用于获取或设置项在控件中的显示方式。 语法: public View View { get; set; } 属性值:View 值之一。默认为 LargeIcon。 View 的属性值及说明如表 2 所示。

表2
View 的属性值及说明
(2)FullrowSelect 属性。用于指定是只选择某一项,还是选择某一项所在的 整行。 语法: public bool FullRowSelect { get; set; } 属性值:如果单击某项会选择该项及其所有子项,则为 True;如果单击某 项仅选择项本身,则为 False。默认为 False。 说 明 : 除 非 将 ListView 控 件 的 View 属 性 设 置 为 Details , 否 则 FullRowSelect 属性无效。在 ListView 显示带有许多子项的项时,通常使用 FullrowSelect 属性,并且,在由于控件内容的水平滚动而无法看到项文本时, 能够查看选定项是非常重要的。 (3)GridLines 属性。指定在包含控件中项及其子项的行和列之间是否显示网 格线。 语法: public bool GridLines { get; set; } 属性值:如果在项及其子项的周围绘制网格线,则为 True;否则为 False。 默认为 False。 说明:除非将 ListView 控件的 View 属性设置为 Details,否则 GridLines 属性无效。 示例 FullrowSelect 属性 本示例主要介绍 View 属性和 FullrowSelect 属性的使用方法,示例运行结 果如图 2 所示。

使用VB中的MSComm控件实现串口通信

使用VB中的MSComm控件实现RS-232串口通信 实验准备:需要准备一些与串口通信有关的设备,如(外置式)调制解调器、计算机串口与调制解调器的连接线、一根DTE到DTE的无调制解调器连接线(接法见本章有关习题的参考答案),在实验前检查计算机的两个串口是否能够正常工作。 实验环境:Windows 95/98操作系统,Microsoft VB 5.0以上程序设计环境。对例题中涉及调制解调器的内容,采用计算机与调制解调器连接的方式;对在例题中 VB (1 (CD) (2 来查询事件和错误。如果应用程序较小,并且是自保持的,这种方法可能是更可取的。例如,如果写一个简单的电话拨号程序,则没有必要对每接收一个字符都产生事件,因为唯一等待接收的字符是调制解调器的“OK”响应。 每个使用的MSComm控件都对应着一个串行端口。如果应用程序需要访问多个串行端口,必须使用多个MSComm控件。可以在Windows“控制面板”中改变端口地址和 中断地址。

下面这个简单的例子采用了轮询方法演示了用调制解调器进行基本的串行通讯: Private Sub Form_Load() Dim Instring As String '保存输入子串的缓冲区 https://www.360docs.net/doc/379696009.html,mPort=3 '使用COM3。 MSComm1.Settings="2400,N,8,1" '2400波特率,无奇偶校验,8位数据位,一位停止位 下面我们将讲述一下MSComm控件的所有属性,其中前5个是最基本的,必须首先 掌握。 ⑴MsComm控件属性 1)CommPort,设置并返回通讯端口号。语法为: https://www.360docs.net/doc/379696009.html,mPort[=value]

VB中ListView控件属性、方法、事件

VB ListView控件属性、方法、事件 常用属性: View设置或返回控件的视图类型 值说明 1-LvwIcon 图标类型 2-LvwSmallIcon 小图标类型 3-LvwList 列表类型 4-LvwReport 报表类型 Arrange 设置后返回控件的图标排列方式(在图标视图下有效) 值说明 1-LvwNone 不排列 2-LvwAutoLeft 自动靠右排列 3-LvwAutoTop 自动靠左排列 Icons、SmallIcons、ColumnHeaderIcons属性 Icons指定图标视图时的图标与ImageList的绑定 SmallIcons、ColumnHeaderIcons指定列表视图时的图标与ImageList 的绑定 PICTURE、PictureAlignment属性 分别指定ListView控件的背景图片和布局方式 ListItems(Index) 属性 ListItems 属性是ListView控件中列表项的集合。Index用于指定列表项集合中的一个对象, 我们可以把这个对象看作对一行的引用 ListItems集合的属性 1. Text 设置或返回显示文本 2. key 关键字 3. index 索引编号 4. icon , smallicon 不同视图时显示单元格的图标 5. checked 给checkboxes 打√ 6. selected 使处于选定状态 7. ListSubitems(index)集合我们可以把这个集合看作对这行中单元格的引用 Text 设置或返回单元格显示的内容 Reporticon 设置单元格的图标 8.Subitems(index) 设置或返回单元格文本== ListSubitems (index).text ColumnHeaders(index) 属性

C#串口通信:MSComm控件使用详解

C#串口通信:MSComm控件使用详解 目次 MSComm 控件两种处理通讯的方式 CommPort 属性 RThreshold 属性 CTSHolding 属性 SThreshold 属性 CDHolding 属性 DSRHolding 属性 Settings 属性 InputLen 属性 EOFEnable 属性 Handshake 常数 OnComm 常数 InputMode 常数 错误消息 MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。MSComm控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API函数,而且在VC、VB、Delphi 等语言中均可使用。Microsoft Communications Control(以下简称MSComm)是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。具体的来说,它提供了两种处理通信问题的方法:一是事件驱动(Event-driven)方法,一是查询法。 1.MSComm控件两种处理通讯的方式 MSComm控件提供下列两种处理通讯的方式:事件驱动方式和查询方式。 1.1 事件驱动方式 事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。在许多情况下,在事件发生时需要得到通知,例如,在串口接收缓冲区中有字符,或者Carrier Detect (CD) 或Request To Send (RTS) 线上一个字符到达或一个变化发生时。在这些情况下,可以利用MSComm 控件的OnComm 事件捕获并处理这些通讯事件。OnComm 事件还可以检查和处理通讯错误。所有通讯事件和通讯错误的列表,参阅CommEvent 属性。在编程过程中,就可以在OnComm事件处理函数中加入自己的处理代码。这种方法的优点是程序响应及时,可靠性高。每个MSComm 控件对应着一个串行端口。如果应用程序需要访问多个串行端口,必须使用多个MSComm 控件。 1.2 查询方式 查询方式实质上还是事件驱动,但在有些情况下,这种方式显得更为便捷。在程序的每个关键功能之后,可以通过检查CommEvent 属性的值来查询事件和错误。如果应用程序较小,并且是自保持的,这种方法可能是更可取的。例如,如果写一个简单的电话拨号程序,则没有必要对每接收一个字符都产生事件,因为唯一等待接收的字符是调制解调器的“确定”响应。 2.MSComm 控件的常用属性 MSComm 控件有很多重要的属性,但首先必须熟悉几个属性。 CommPort 设置并返回通讯端口号。 Settings 以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。 PortOpen 设置并返回通讯端口的状态。也可以打开和关闭端口。 Input 从接收缓冲区返回和删除字符。 Output 向传输缓冲区写一个字符串。 下面分别描述:

C#中ListView的用法

C# 中LISTVIEW用法 //增加项或列(字段) ListView1.Clear; ListView1.Columns.Clear; ListView1.Columns.Add; ListView1.Columns.Add; ListView1.Columns.Add; ListView1.Columns.Items[0].Caption:='id'; ListView1.Columns.Items[1].Caption:='type'; ListView1.Columns.Items[2].Caption:='title'; ListView1.Columns.Items[2].Width:=300; Listview1.ViewStyle:=vsreport; Listview1.GridLines:=true; //注:此处代码也可以直接在可视化编辑器中完成, 也可写成以下这样 begin with listview1 do begin Columns.Add; Columns.Add; Columns.Add; ViewStyle:=vsreport; GridLines:=true; columns.items[0].caption:='进程名'; columns.items[1].caption:='进程ID'; columns.items[2].caption:='进程文件路径'; Columns.Items[0].Width:=100; Columns.Items[1].Width:=100; Columns.Items[2].Width:=150; end end; //增加记录 with listview1.items.add do begin caption:='1212'; subitems.add('hh1'); subitems.add('hh2'); end; //删除 listview1.items.delete(0);

MSComm控件使用详解

MSComm控件使用详解 2008-04-06 19:15:39| 分类:Windows编程|举报|字号订阅 MSComm控件使用详解 MSComm控件的常用属性 1.MSComm1.Settings:=’9600,n,8,1’; //设置波特率,校验位,数据位,停止位 Settings属性: 设置串口的波特率,校验位,数据位,停止位, ’9600,n,8,1’表示波特率为9600,无奇偶校验,数据位为8为,1位停止位 MSComm1.InBufferSize:=1024; // 接受缓冲区大小 InBufferSize 属性:接收缓冲区的大小,默认值为1024,也可以自己设定,比如, MSComm1.InBufferSize:=2000,则接收缓冲区的大小为2000字节 MSComm1.OutBufferSize:=1024; // 发送缓冲区大小 OutBufferSize属性:发送缓冲区的大小,默认值为1024,也可以自己设定,比如, MSComm1.OutBufferSize:=2000,则发送缓冲区的大小为2000字节 MSComm1.InBufferCount:=0; //清空接受缓冲区 InBufferCount属性:当前接收缓冲区接收到的数据的长度, count:=MSComm1.InBufferCount, 则count值就是接收缓冲区接收到的数据的长度,对InBufferCount 赋值MSComm1.InBufferCount:=0,可以清空接受缓冲区 MSComm1.OutBufferCount:=0; //清空发送缓冲区 OutBufferCount属性:当前发送缓冲区中数据的长度,对OutBufferCount 赋值MSComm1. OutBufferCount:=0,可以清空发送缓冲区 MSComm1.InputMode:=comInputModeText;// 以文本方式取回数据 MSComm1.InputMode:=comInputModeBinary; //设置接收数据模式为二进制形式 InputMode属性:串口接收数据的模式, comInputModeText(0)表示以文本(ASCII)方式取回数据, comInputModeBinary(1)表示以二进制方式取回数据 comInputModeText, comInputModeBinary为预定义常量,分别表示0,1 RcvByte:=MSComm1.Input Input属性:通过Input属性可以读取串口中接收到的数据,RcvByte:=MSComm1.Input表示读取串口接收到的数据,其中RcvByte的数据类型为: array of Byte 或array of Variant.在读取之前先设置RcvByte的长度:SetLength(RcvByte,len),如果一次读取所有数据,则SetLength(RcvByte, MSComm1.InBufferCount) MSComm1.Output:= OutputDat Output属性:通过Output属性可以发送数据, MSComm1.Output:=OutputDat,则将OutputDat中

VB6控件LISTVIEW使用指南

功---- VB6无疑是当前最先进的编程工具之一,无论是它的代码编写还是与视窗98的完美结合, 都令人们特别是程序员们赞叹不已。在这里,我将自己在编程实践中对LISTVIEW控件的一些使用经验和心得体会与广大的同仁们作以探讨,希望大家批评指正,或者有所借鉴。 ---- 在VB6专业版或者企业版中,LISTVIEW控件并不是默认的工具箱的配置项目,你必须要手工添加---单击"工程"菜单项目,选择"部件",在部件对话框的"控件"栏目中选择"MICROSOFT WINDOWS COMMON CONTROLS 6.0",确认在它前面的复选框中有一个黑色的对号,单击"确认" 按钮,这时你的工具箱中便添加了几个控件,其中,有五个空心圆圈的便是LISTVIEW控件了, 当然怎么把它添加到窗体上就不用我多说了吧。 ---- 我个人认为,作为一个增强功能的列表框,它的本质是用来显示更多的信息的.因此, 在这篇文章中,我着重介绍它VIEW属性的LVWREPORT(报表)值的使用.至于它的外观怎样设计,诸位当然可以随心所欲了.为了直观一点,我举一个应用实例来说明。 ---- 设计完成后的主界面参见图一,它实际上是一个增强功能的文件浏览器。 ---- 首先新建一个标准EXE工程,主窗体名称为FRMMAIN,添加一个驱动器列表框DRIVE1,一个文件列表框FILE1(设置VISIBLE属性FALES,PATTERN属性(*.EXE;*.DLL)),一个目录列表框DIR1,一个增强列表框LISTVIEW1,一个IMAGE控件IMAGE1和一个IMAGELIST控件IMALIST1,在IMALIST1控件上单击右键,设计IMAGELIST控件,添加一个你最喜欢的图标(最好使用ICON图标),索引为一。在主窗体FRMMAIN的通用声明段输入以下代码: Dim clmX As ColumnHeader;标题栏 Dim itmX As ListItem;列表项目 Dim Counter As Long;计数器 Dim Fname As String;读取文件名 Dim dname As String;增强列表框完整路径名称 Public CurrentDir As String;完整的目录名称 在主窗体的LOAD事件中写入以下代码: Private Sub Form_Load() Me.Caption = App.Title;

MSComm控件实现串口通信的方法

MSComm控件实现串口通信的方法 碧峰晨曦 摘要:详细介绍了MSComm控件,并在VC++6.0中利用MSComm控件开发了基于对话框的串口通信实例。 关键词:串口通信,MSComm,VC++ 图书编号:TP311 0.引言 串口通信具有实现简单、价格低廉、通信稳定、数据传输可靠等优点,因而广泛应用于各种工业控制系统中。MSComm控件是微软公司开发的专门用于串口通信的控件。该控件为开发串口通信程序提供了更加快捷、容易的方法。在VC++中,对控件属性的操作都是通过特定的函数来实现的,这些函数都是CMSComm类的成员函数。当声明了一个CMSComm类对象后,就可以通过如下格式调用成员函数来访问控件属性了: <对象名>.<成员函数名>(<参数表>)或<对象名>-><成员函数名>(<参数表>) 1.MSComm控件属性及事件 1.1 MSComm控件属性 MSComm控件有许多属性,最主要的几个属性如下: 1)CommPort:设置该属性值可以获取当前程序使用的串口编号。 2)Setting:设置或者获取串行通信的通信参数(包括波特率、奇偶校验类型、数据位数及停止位数等)。 3)PortOpen:设置该属性可以打开或关闭串口。 4)Input:从接收缓冲区中返回并删除数据。 5)Output:向串口通信输出缓冲区写入数据。 6)CommEvent:当MSComm控件在运行时发生错误或产生各种事件时,向程序返回错误或事件类型。 1.2 MSComm控件的事件 该控件只有一个事件,即OnComm事件。当CommEvent属性值发生变化时就会触发OnComm事件。根据CommEvent属性值来分别执行各种情况下的处理程序。

MSComm控件使用详1

MSComm控件使用详解 MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。MSComm 控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API函数,而且在V C、VB、Delphi等语言中均可使用。 Microsoft Communications Control(以下简称MSCo mm)是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。具体的来说,它提供了两种处理通信问题的方法:一是事件驱动(Event-driven)方法,一是查询法。 1.MSComm控件两种处理通讯的方式 MSComm控件提供下列两种处理通讯的方式:事件驱动方式和查询方式。 1.1 事件驱动方式 事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。在许多情况下,在事件发生时需要得到通知,例如,在串口接收缓冲区中有字符,或者 Carrier Detect (CD) 或 Re quest To Send (RTS) 线上一个字符到达或一个变化发生时。在这些情况下,可以利用 MSC omm 控件的 OnComm 事件捕获并处理这些通讯事件。OnComm 事件还可以检查和处理通讯错误。所有通讯事件和通讯错误的列表,参阅 CommEvent 属性。在编程过程中,就可以在OnComm事件处理函数中加入自己的处理代码。这种方法的优点是程序响应及时,可靠性高。每个MSComm 控件对应着一个串行端口。如果应用程序需要访问多个串行端口,必须使用多个 MSComm 控件。 1.2 查询方式 查询方式实质上还是事件驱动,但在有些情况下,这种方式显得更为便捷。在程序的每个关键功能之后,可以通过检查 CommEvent 属性的值来查询事件和错误。如果应用程序较小,并且是自保持的,这种方法可能是更可取的。例如,如果写一个简单的电话拨号程序,则没有必要对每接收一个字符都产生事件,因为唯一等待接收的字符是调制解调器的“确定”响应。 2.MSComm 控件的常用属性 MSComm控件有很多重要的属性,但首先必须熟悉几个属性。 CommPort 设置并返回通讯端口号。 Settings 以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。 PortOpen 设置并返回通讯端口的状态。也可以打开和关闭端口。 Input 从接收缓冲区返回和删除字符。 Output 向传输缓冲区写一个字符串。 下面分别描述: CommPort 属性 设置并返回通讯端口号。 语法 https://www.360docs.net/doc/379696009.html,mPort[ = value ] CommPort 属性语法包括下列部分: 部分描述 object 对象表达式,其值是“应用于”列表中的对象。

C#中ListView的用法详解

C# ListView用法详解 分类:C#2012-08-27 18:44 91268人阅读评论(31) 收藏举报 一、ListView类 1、常用的基本属性: (1)FullRowSelect:设置是否行选择模式。(默认为false) 提示:只有在Details视图该属性才有意义。 (2)GridLines:设置行和列之间是否显示网格线。(默认为false)提示:只有在Details视图该属性才有意义。 (3)AllowColumnReorder:设置是否可拖动列标头来对改变列的顺序。(默认为false)提示:只有在Details视图该属性才有意义。 (4)View:获取或设置项在控件中的显示方式,包括Details、LargeIcon、List、SmallIcon、Tile(默认为LargeIcon) (5)MultiSelect:设置是否可以选择多个项。(默认为false) (6)HeaderStyle:获取或设置列标头样式。 Clickable:列标头的作用类似于按钮,单击时可以执行操作(例如排序)。 NonClickable:列标头不响应鼠标单击。 None:不显示列标头。 (7)LabelEdit:设置用户是否可以编辑控件中项的标签,对于Detail视图,只能编辑行第一列的内容。(默认为false) (8)CheckBoxes:设置控件中各项的旁边是否显示复选框。(默认为false) (9)LargeImageList:大图标集。提示:只在LargeIcon视图使用。

(10)SmallImageList:小图标集。提示:只有在SmallIcon视图使用。 (11)StateImageList:图像蒙板。这些图像蒙板可用作LargeImageList和SmallImageList图像的覆盖图,这些图像可用于指示项的应用程序定义的状态。(暂时不大懂) (12)SelectedItems:获取在控件中选定的项。 (13)CheckedItems:获取控件中当前复选框选中的项。 (14)Soritng:对列表视图的项进行排序。(默认为None) Ascending:项按递增顺序排序。 Descending:项按递减顺序排序。 None:项未排序。 (15)Scrollable:设置当没有足够空间来显示所有项时是否显示滚动条。(默认为true) (16)HoverSelection:设置当鼠标指针悬停于项上时是否自动选择项。(默认为false) (17)HotTracking:设置当鼠标指针经过项文本时,其外观是否变为超链接的形式。(默认为false) (18)HideSelection:设置选定项在控件没焦点时是否仍突出显示。(默认为false) (19)ShowGroups:设置是否以分组方式显示项。(默认为false); (20)Groups:设置分组的对象集合。 (21)TopItem:获取或设置控件中的第一个可见项,可用于定位。(效果类似于EnsureVisible方法) 2、常用方法: (1)BeginUpdate:避免在调用EndUpdate方法之前描述控件。当插入大量数据时,可以有效地避免控件闪烁,并能大大提高速度。

MSComm控件的用法和函数说明

MSComm控件进行串口编程步骤: 1. 在建立的程序工程中插入MSComm控件。 2. 添加MSComm控件ID 的控制变量(或者对象)。 3. 对串口进行初始化,设置MSComm控件的属性。 4. 添加串口事件的消息处理函数OnComm()函数,在函数中根据应用需要,编写数据处理代码 5. 编写串口发送等其他代码。 6. 关闭串口。 +MSComm控件 常用属性: https://www.360docs.net/doc/379696009.html,mPort:设置并返回通信端口号 2.Settings:以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位 3.PortOpen:设置并返回通信端口的状态。也可以打开和关闭端口 4.Input:从接收缓冲区返回和删除字符 5.Output:向传输缓冲区写一个字符 6.InputLen:设置并返回Input属性从接收缓冲区读取的字符数。 7.InBufferSize:设置或返回输入缓冲区的大小。 8.OutBufferSize:设置或返回输入缓冲区的大小。 9.InBufferCount:设置或返回输入缓冲区内等待读取的字节个数。 10.OutBufferCount:设置或返回输入缓冲区内等待读取的字节个数。 对MSComm控件通过Get/Set函数对来获取或设置控件的属性,每个属性均有与之对应的Get/Set函数 对。 用法说明 https://www.360docs.net/doc/379696009.html,mPort:设置并返回通信端口号 Void CMSComm::SetCommPort(short n); 设置串口号

Short CMSComm::GetCommPort(); 查询当前串口号 说明:n可以设置成1到16中的任何数(缺省值为1)。但是,如果用PortOpen属性打开一个并不存在的端口是,MSComm控件会产生错误68(设备无效); 必须在打开端口之前设置CommPort属性。 2.Settings:以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位 Void CMSComm::SetSettings(LPCTSTR lpszNewValue); CString CMSComm::GetSettings(); 说明:当端口打开时,如果设置值lpszNewValue非法,则MSComm控件产生错误380(非法属性值)。 Value 由四个设置值组成,有如下格式:“BBBB,P,D,S” BBBB:波特率P: 奇偶校验,D:数据位数,S:停止位数 Value的缺省值:“9600,N,8,1”。 3.PortOpen:用于打开或关闭串口,或者返回串口的开、关状态 Void CMSComm::SetPortOpen(BOOL bNewValue); BOOL CMSComm::GetPortOpen(); 说明:bNewValue值设置为TRUE,则打开串口;bNewValue值设置为FALSE,则关闭串口。编程时可以再程序中打开或关闭串口,当程序终止,MSComm控件自动关闭串口。 4.InPut:从接收缓冲区内读出数据 VARIANT CMSComm::GetInPut(); 说明:返回数据类型为VARIANT型变量,该属性在串口没有打开时不能用,在运行时是只读的。 InPutMode=0时(检取数据为文本方式),变量中含String型数据。 InPutMode=1时(检取数据位二进制方式),变量中含Byte型数据。 5.OutPut:向发送缓冲区写数据,或返回发送缓冲区当前的数据 Void CMSComm::SetOutPut(const VARIANT& newValue); VARIANT CMSComm::GetOutPort(); 说明:变量类型为VARIANT,该属性在串口未打开时不可用。OutPut可以发送文本或二进制数据,当发送文本类型数据时,将字符型数据放入VARIANT型变量中;发送二进制数据时(按字节发送),将字节型数据放入VARIANT型变量中。若数据中包含了内嵌控制字符。空字符等,必须将其作为二进制数据发送。

串口通信-MSComm控件使用详解

串口通信-MSComm控件使用详解 2012-11-13 09:35 6988人阅读评论(0) 收藏举报控件编程 Delphi编程(13) MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。MSComm控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API函数,而且在VC、VB、Delphi等语言中均可使用。Microsoft Communications Control(以下简称MSComm)是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。具体的来说,它提供了两种处理通信问题的方法:一是事件驱动(Event-driven)方法,一是查询法。 1.MSComm控件两种处理通讯的方式 1.1 事件驱动方式 事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。在许多情况下,在事件发生时需要得到通知,例如,在串口接收缓冲区中有字符,或者 Carrier Detect (CD) 或 Request To Send (RTS) 线上一个字符到达或一个变化发生时。在这些情况下,可以利用 MSComm 控件的 OnComm 事件捕获并处理这些通讯事件。OnComm 事件还可以检查和处理通讯错误。所有通讯事件和通讯错误的列表,参阅 CommEvent 属性。在编程过程中,就可以在OnComm事件处理函数中加入自己的处理代码。这种方法的优点是程序响应及时,可靠性高。每个MSComm 控件对应着一个串行端口。如果应用程序需要访问多个串行端口,必须使用多个 MSComm 控件。 1.2 查询方式 查询方式实质上还是事件驱动,但在有些情况下,这种方式显得更为便捷。在程序的每个关键功能之后,可以通过检查 CommEvent 属性的值来查询事件和错误。如果应用程序较小,并且是自保持的,这种方法可能是更可取的。例如,如果写一个简单的电话拨号程序,则没有必要对每接收一个字符都产生事件,因为唯一等待接收的字符是调制解调器的“确定”响应。 2.MSComm控件的常用属性 ngs:=’9600,n,8,1’; //设置波特率 ,校验位,数据位,停止位 Settings属性:设置串口的波特率 ,校验位,数据位,停止位, ’9600,n,8,1’表示波特率为9600,无奇偶校验,数据位为8为,1位停止位 ferSize:=1024; // 接受缓冲区大小 InBufferSize 属性:接收缓冲区的大小,默认值为1024,也可以自己设定,比如, ferSize:=2000,则接收缓冲区的大小为2000字节 fferSize:=1024; // 发送缓冲区大小 OutBufferSize属性:发送缓冲区的大小,默认值为1024,也可以自己设定。 ferCount:=0; //清空接受缓冲区 InBufferCount属性:当前接收缓冲区接收到的数据的长度,count:=ferCount, 则count值就是接收缓冲区接收到的数据的长度,对InBufferCount 赋值ferCount:=0,可以清空接 受缓冲区 fferCount:=0; //清空发送缓冲区 OutBufferCount属性:当前发送缓冲区中数据的长度,对OutBufferCount 赋值 MSComm1. OutBufferCount:=0,可以清空发送缓冲区

VB ListView的使用

VB ListView的使用 ListView控件比前面几种控件要复杂一些,通过此控件,可将项目组成带有或不带有列标头的列,并显示伴随的图标和文本。ListView控件是由ColumnHeader和ListItem对象所组成的,其中ColumnHeader对象的个数决定了控件的列数,而ListItem对象的个数则决定了控件的行数。(图7) ColumnHeader对象是ListView控件中包含标头文字的项目。利用ColumnHeader对象,用户可以: ▲单击对象触发ColumnClick事件并根据数据项目将项目排序。 ▲拖动对象的右边框来调整列宽度。 ▲在报表视图中隐藏ColumnHeader对象。 ColumnHeader对象的数目决定每个ListItem对象可包含的子项目数目。删除ColumnHeader对象后所有与列关联的子项目也将被删除,并且每个ListItem对象的子项目数组将平移以更新ColumnHeader的索引,而这将导致剩余的列标头SubItemIndex属性的改变。 ColumnHeader对象的SubItemIndex属性 该属性返回与ListView控件中ColumnHeader对象关联的子项目的索引。子项目是字符串数组,代表显示在报表视图中的ListItem对象的数据。第一列的列标头SubItemIndex 属性设置为0,这是因为小图标和ListItem对象的文字总出现在第一列中,而且它们被当作ListItem对象而不是子项目。列标头数目取决于子项目数目。列标头数目总是比子项目数目多1。 在设计时可以利用属性页的“列首”选项卡将ColumnHeader对象添加到ListView控件中,在运行时则用Add方法添加。 ColumnHeader对象的Add方法 该方法的使用与前面那些控件基本相似,就不再介绍了。

MSComm控件的属性

MSComm控件的属性 (必须要熟悉的几个——CommPort:设置并返回通信端口号;Setting:以字符串的形式设置并返回数据传输速率、奇偶校验、数据比特、停止比特;PortOpen:设置并返回通信端口的状态,也可以打开和关闭端口;Input:从接收缓冲区返回和删除字符;Output:向传输缓冲区定一个字符串) 1)CommPort属性 void SetCommPort(short nNewValue); short GetCommPort(); 这一属性设置并返回连接的串行端口号,Windows将会利用该串口和外界通信。在设计时,nNewValue可以设置成从1~16的任何数(默认值为1)。但是如果用PortOpen属性打开一个并不存在的端口时,MSComm控件会产生错误68(设备无效)。 注意:必须在打开端口之前设置CommPort属性。 2)Settings属性 void Settings(LPCTSTR lpszNewV alue); String GetSettings(); 该属性用于设置并返回数据传输速率、奇偶校验、数据比特、停止比特参数。当端口打开时,如果value非法,则MSComm控件产生错误380(非法属性值)。其中lpszNewValue用字符串表示,由四个设置值组成,有如下的组成格式: “BBBB,P,D,S” BBBB为数据传输速率,P为奇偶校验,D为数据比特,S为停止比特。Value的默认值是:“9600,N,8,1”,数据传输速率合法值可以是110、300、600、1200、2400、4800、9600、14400、19200、28800、38400、56000、57600、115200、12800、25600。 奇偶校验值可以是设置为下表的任一值。 设定值描述 E 偶校验(EVEN) M 标号校验(MARK) N 无校验(NONE) O 奇校验(ODD) S 空格校验(SPACE) 数据比特数可以是4、5、6、7、8。 停止比特数可以是1、1.5、2。 注意:只有当通信的双方的Settings属性值都一样时,通信连接才能生效。 3)Handshaking属性 这一属性用于设置或者返回硬件握手协议,也就是PC和通信设备之间为了控制流速而设定的内部协议。属性值可以设置为下表中的任一个。 设定值值描述 ComNone 0 默认值,无握手协议 comXOnXOff 1 XON/XOFF握手 ComRTS 2 RTS/CTS握手 comRtsXOnXOff 3 RTS/CTS和XON/XOFF握手皆可 4)RThreshold属性 void SetRThreshold(short nNewValue); short GetRThreshold(); 在MSComm控件设置CommEvent属性为comEvReceive并产生OnComm之前,RThreshold 属性设置并返回的要接收的字符数。这里nNewValue是short型参数,说明在产生OnComm 事件之前要接收的字符数。 当接收字符后,若RThreshold属性设置为0(默认值)则不会产生OnComm事件。否则,该属

相关文档
最新文档