Visual C++ 2010 MFC ActiveX 控件小结[推荐]

时间:2019-05-13 19:13:48下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《Visual C++ 2010 MFC ActiveX 控件小结[推荐]》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《Visual C++ 2010 MFC ActiveX 控件小结[推荐]》。

第一篇:Visual C++ 2010 MFC ActiveX 控件小结[推荐]

一、ActiveX控件

ActiveX控件是基于组件对象模型COM--Components Object Modem的可重用软件组件,旨在用于普通的ActiveX控件容器和Internet上的网页,这里介绍用MFC创建ActiveX控件。一个典型的ActiveX控件,具有方法、属性、事件这三种特性。

二、ActiveX控件的测试与注册

1、使用ActiveX控件测试容器对控件进行测试

对于VC6.0,安装CommonTools目录下的TSTCON32.EXE即可使用。

而vs2010中的TSTCON(ActiveX Control Test Container)工具非自动安装,而是作为一个例程提供。所以应找到该例程,并编译: 如vs2010安装在默认路径则

1, 进入:C:Program FilesMicrosoft Visual Studio 10.0Samples1033,可找到VC2010Samples.zip文件,2, 将其解决到同一个文件夹,解压后将出现一个C++子文件夹。

3, TstCon例程在:C:Program FilesMicrosoft Visual Studio 10.0Samples1033C++MFColeTstCon,双击其中的.sln文件启动工程,直接编译,4, 编译后在Debug子文件夹中将出现一个TstCon.exe文件,将其复制到:C:Program FilesMicrosoft Visual Studio 10.0Common7Tools文件夹。

5, 在vs2010中的Tools菜单点击“External Tools...”,出现如下对话框,点击“Add”添加一项工具。6, 新工具项的“Title”为:ActiveX Control Test Container,“Command” 为:C:Program FilesMicrosoft Visual Studio 10.0Common7Tools TstCon.exe。

7, 确认退出对话框,Tools菜单将出现“ActiveX Control Test Container”菜单项。Visual C++ 2010 MFC ActiveX 控件小结Captain栋蝈 打开控件测试容器初始界面如下图

Visual C++ 2010 MFC ActiveX 控件小结Captain栋蝈 Edit→Insert New Control→选择要测试的控件→OK

2、ActiveX控件的注册与删除

所有的ActiveX控件必须在注册之后才能使用,实际上在VS2010开发环境中生成控件程序时,就已经通过regsvr32程序注册了该控件;如果要删除ActiveX控件的注册信息,利用regsvr32程序的/u选项来完成。通常可以选择“开始”→“运行”命令,然后输入“regsvr32/u”,再在其后输入要删除的ActiveX控件的完整路径。Tips:在“运行”中先输入regsvr32/u,然后拖动要删除的控件到“regsvr32/u”之后,即可获取其完整路径。

将xxx.ocx文件拷贝至Windowssystem下,然后regsvr xxx.ocx即注册;regsvr32/u xxx.ocx即删除。

三、ActiveX控件开发完整过程 经典Clock控件案例~~

1、创建工程

创建MFC ActiveX Control类项目,命名为Clock,MFC ActiveX Control Wizard全选默认,Finish。

2、时钟控件的实现

获取当前系统时间,CClockCtrl类的OnDraw函数中 CTime time=CTime::GetCurrentTime();CString str=time.Format(“%H:%M:%S”);pdc->TextOut(0,0,str);动态显示时间,CClockCtrl类添加WM_CREATE和WM_TIMER消息及处理函数 设置定时器SetTimer(1,1000.NULL);定时器相应函数InvalidateControl();//其实就是调用OnDraw函数

编译并运行ActiveX控件,然后打开ActiveX控件容器中插入该控件,可以看到动态显示的时间

3、属性 3.1标准属性

以背景色和前景色为例,类视图中展开Lib结尾的选项,右键“_DClock”→“添加”→“属性”,然后添加标准属性,及选中“Stock”,在PropertyName中选则BackColor,其余选中默认,单击完成。同理添加前景色ForeColor。

为属性对话框添加“颜色”选项卡,修改类CClockCtrl.cpp中的属性页映射宏PROPPAGEID(CLSID_CColorPropPage);切记计数参数要增加1: // 属性页

// TODO: 按需要添加更多属性页。请记住增加计数!BEGIN_PROPPAGEIDS(CClockCtrl, 2)

PROPPAGEID(CTimePropPage::guid)

PROPPAGEID(CLSID_CColorPropPage);END_PROPPAGEIDS(CClockCtrl)然后在修改OnDraw函数使控件颜色根据颜色选项卡的选则而变化:

CBrush brush(TranslateColor(GetBackColor()));

pdc->FillRect(rcBounds,&brush);

pdc->SetBkMode(TRANSPARENT);

pdc->SetTextColor(TranslateColor(GetForeColor()));3.2自定义属性

添加一个自定义属性:时间间隔(UpdateInterval),用于设置更新时间的间隔。

与标准属性添加相同,在添加属性向导中,在PropertyName中输入UpdateInterval,类型设置为SHORT。可以看到向导自动添加了通知函数OnUpdateIntervalChange(),单击Finish完成添加。void CClockCtrl::OnUpdateIntervalChanged(void){

AFX_MANAGE_STATE(AfxGetStaticModuleState());

// TODO: 在此添加属性处理程序代码

if(m_UpdateInterval<1000 || m_UpdateInterval>6000)

{

//解决输入值不合要求的问题

m_UpdateInterval=1000;

}

else

{

//解决输入值不是整数的问题

m_UpdateInterval=m_UpdateInterval/1000*1000;

}

KillTimer(1);

SetTimer(1,m_UpdateInterval,NULL);

SetModifiedFlag();} 关联某控件变量,需要手动添加:

DDP_Text(pDX, IDC_EDIT1, m_updateInterval,_T(“Interval”));DDX_Text(pDX, IDC_EDIT1, m_updateInterval);DDP_PostProcessing(pDX);DDP、DDX、PostProcessing,顺序不可以调整

为测试自定义属性,在Edit→Insert New Control→选择要测试的控件后,选择Control→Invoke Methods,如果想要获取,某个属性值,则选择PropGet;如果设置,则选PropPut。这里选择后者,然后输入2000,单击SetValue,在单击【Invoke】按钮,发现控件时间每个2S更新一次。

4、方法

与添加属性一样,_DClock右键......选择“方法”,这里添加一个简单的“Hello” 代码:

void CClockCtrl::Hello(void){

AFX_MANAGE_STATE(AfxGetStaticModuleState());

// TODO: 在此添加调度处理程序代码

MessageBox(_T(“Hello world”));} 测试时Control→Invoke Methods,选择“Hello”

5、事件

5.1添加标准事件

右键CClockCtrl类(类视图CxxxCtrl上点击右键才能添加事件,而在_DxxxEvents接口上点击右键则没有添加事件),添加“事件”,显示添加事件向导对话框,“Event Name”下拉列表框中选择”Click“,单击Finish。5.2添加自定义事件

添加一个NewMinute事件,实现新的一分钟时有提示 Event Name中输入NewMinute,然后Finish。在InDraw函数中获取系统时间代码后添加 if(time.GetSecond()==0)

{

NewMinute();//判断是否过了一分钟,是则触发NewMinute事件

}

6、调用ActiveX控件

新建一个名为ClockTest的对话框,在对话框上右键,选择”Insert ActiveX Control“,找到Clock控件添加即可。

或者是,”工具“→”选择工具箱选项“→”COM Components“,选择要插入的控件,单击OK。

第二篇:GridControl控件小结

由于近期要使用gridcontrol控件,整理出来,以便以后参考:

1.DevExpress控件组中的GridControl控件不能使横向滚动条有效。现象:控件中的好多列都挤在一起,列宽都变的很小,根本无法正常浏览控件单元格中的内容。

解决:

gridView1.OptionsView.ColumnAutoWidth属性是true,即各列的宽度自动调整,你把它设成false,就会出现了。

2.使单元格不可编辑。

gridcontrol-->gridview-->OptionsBehavior-->Editable=false

3.没有下拉滚动条事件怎么办?现象:因为需要加载大数据量数据,所以不能一次把所有数据读入datatable进行绑定,所以决定在用户进一步浏览数据时进行数据的实时加载工作,就是每当用户拉动滚动条时,多加载一些数据进入datatable.没有找到合适的滚动条事件,于是用这个事件代替了,非常合适我的需求.TopRowChanged事件.4.获取选定行,指定列单元格的内容

private string GetSelectOID()

{

int[] pRows = this.gridView1.GetSelectedRows();

if(pRows.GetLength(0)> 0)

return gridView1.GetRowCellValue(pRows[0], mOIDFiledName).ToString();

else

return null;

}

//mOIDFiledName为要获取列的列名

5.去除“Drag a Column Header Here To Group by that Column”

属性Gridview->Option View->Show Group Panel=false,就好了

6.在gridcontrol中添加checkbox复选框

gridview->run designer->columns->选择要变成复选框的那一列->column edit->new(在这里可以选择很多类型)

加载checkbox数据时,费了一点时间,checkbox的复选框怎么点击,一失去焦点是,选择的操作就无效了,问题就出在datatable的绑定上了,一定要绑定一个布尔的类型.代码是这样滴!

private void FrmCreateLegend_Load(object sender, EventArgs e)

{

IFeatureLayer pFeatureLayer;

IDataset pDataset;

string pName;

DataTable pDatatable = new DataTable();

pDatatable.Columns.Add(“图层名称”, System.Type.GetType(“System.String”));pDatatable.Columns.Add(“选择”, System.Type.GetType(“System.Boolean”));

DataRow pDataRow;

object[] rowArray = new object[2];

for(int i = 0;i < mFeatureLayers.Count;i++)

{

pDataRow = pDatatable.NewRow();

pFeatureLayer = mFeatureLayers[i] as IFeatureLayer;

rowArray[0] = pFeatureLayer.Name;

rowArray[1] = false;

pDataRow.ItemArray = rowArray;

pDatatable.Rows.Add(pDataRow);

}

this.gridMark.DataSource = pDatatable;

this.gridMark.Refresh();

}

注意:创建的datatable的列名一定要和gridview中的列的fieldname属性值是一个名字,不然,你会发现添加了和你绑定的datatalbe一样多的行,可是行里面却没有内容的.7.多选

GridControl->GridView->属性->OptinosSelecttion->MultiSelect

8.不显示子表信息

当我们对DataTable建立父子关系后,将父表绑定在Grid上,会造成关系列上有加号显示,并且可以展开.如果你觉得展开的信息对你没有意义的话,是可以关掉的.这是需要修改属性 属性Gridview->Option View->ShowDetailButtons=false

bandedGridView1.Columns[1].Width =

bandedGridView1.CalcColumnBestWidth(bandedGridView1.Columns[1])+ 5;

bandedGridView1.Columns[2].Width =

bandedGridView1.CalcColumnBestWidth(bandedGridView1.Columns[2])+ 5;

bandedGridView1.Columns[3].Width =

bandedGridView1.CalcColumnBestWidth(bandedGridView1.Columns[3])+ 5;

bandedGridView1.Columns[0].Width

bandedGridView1.CalcColumnBestWidth(bandedGridView1.Columns[0])+ 5;=

第三篇:MFC控件关联变量小结

MFC控件关联变量总结

通常在要绑定变量的编辑框控件上右键添加变量就可以。

绑定变量分value和control两种,value是赋值用的,control是控制用的。对于编辑框的赋值,共分几种方法 1.不用绑定变量的方法

GetDlgItem(IDC_EDIT1)->GetWindowText(变量); 如果是数组->GetWindowText(数组名,长度)GetDlgItem(IDC_EDIT1)->SetWindowText(变量); 2.绑的是value型变量 一共3处

<1处>project1Dlg.h : 头文件 class Cproject1Dlg : public CDialog { // 构造 public: Cproject1Dlg(CWnd* pParent = NULL);// 标准构造函数

// 对话框数据

enum { IDD = IDD_PROJECT1_DIALOG };protected: virtual void DoDataExchange(CDataExchange* pDX);// DDX/DDV 支持

// 实现 protected: HICON m_hIcon;// 生成的消息映射函数 virtual BOOL OnInitDialog();afx_msg void OnSysCommand(UINT nID, LPARAM lParam);afx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();DECLARE_MESSAGE_MAP()public: afx_msg void OnBnClickedOk();CString edit1;//定义了该变量 CString edit2;CEdit edit3;CEdit edit4;CString edit5;};<2处> project1Dlg.cpp : 实现文件

Cproject1Dlg::Cproject1Dlg(CWnd* pParent): CDialog(Cproject1Dlg::IDD, pParent), edit1(_T(“")), edit2(_T(”“)), edit5(_T(”")){ m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);}

参数列表跟了edit1 <3处> project1Dlg.cpp : 实现文件

void Cproject1Dlg::DoDataExchange(CDataExchange* pDX){ CDialog::DoDataExchange(pDX);DDX_Text(pDX, IDC_EDIT1, edit1);DDX_Text(pDX, IDC_EDIT2, edit2);DDX_Control(pDX, IDC_EDIT3, edit3);DDX_Control(pDX, IDC_EDIT4, edit4);DDX_Text(pDX, IDC_EDIT5, edit5);}

DDX_Text(pDX, IDC_EDIT1, edit1);变量与控件关联

通过调用 UpdateData(TRUE)UpdateData(FALSE)将控件数据取到变量或将变量数据显到控件 如果 变量赋值语句写在对话框构造函数里,则UpdateData(FALSE)可省略,会被自动调用

3.绑的是control型变量 代码与上方一样,看edit3 但只有两处涉及 CEdit edit3;DDX_Control(pDX, IDC_EDIT3, edit3);程序里只需要 edit3.GetWindowText(变量);edit3.SetWindowText(变量);就可以用了

除了赋值,还能干很多事情.

第四篇:dxp控件总结

From 属性:

1.MaximizeBox:是否显示最小化按钮。2.MinimizeBox:是否显示最大化按钮。

3.FormBorderStyle:窗口样式,如FixedSingle:固定大小。4.StartPosition:初始显示的位置,CenterScreen:中心。

事件:

TreeList: 属性:

1.隐藏列头:设置OptionsView中的ShowColumns改为false 2.隐藏每行最左边的指示箭头:设置OptionsView中的ShowIndicator改为false 3.隐藏父节点的指示箭头:设置OptionsView中的ShowRoot改为false 4.selectImageList:给TreeList绑定imageCollection 5.OptionsView.ShowVertLines:是否显示网格线(竖直的)6.OptionsView.ShowHorzLines:是否显示网格线(水平的)

7.OptionsSelection.EnableAppearanceFocusedCell:选中单元格,是否改变该单元格外观(选中后该单元格有边线或不显示边线)

8.OptionsSelection.EnableAppearanceFocusedRow:选中行。是否改变该行的外观(选中后该行底色是否变化)

9.OptionsView.ShowCheckBoxes:是否在每一行前显示勾选框。

事件:

1.FocusedNodeChanged:焦点改变后触发

2.treeList_Enter:第一次点击是触发,初始化控件时候,焦点会在第一行,此时就触发。3.CustomNodeCellEdit:鼠标选中某个Cell时触发,可以实现动态的设定Cell绑定的控件类型 4.MouseDoubleClick:双击节点触发

5.FocusedColumnChanged:选中列改变时触发,即前后点击的列不一样时触发(即使前后选中列不在一行,只要选中列改变就会触发,与行无关。若前后选中列中某列的ReadOnly = ture则不会触发该事件)

6.MouseDoubleClick:鼠标双击节点时触发。7.MouseUp:鼠标点击节点弹起时触发。(e.Button可以得到曾按下的是哪个按钮)8.SelectImageClick:点击SelectImage触发 9.StateImageClick:点击StateImage触发 10.BeforeExpand:节点展开之前 11.BeforeFocusNode:焦点选中之前

DevExpress.XtraTreeList.StyleFormatConditions.StyleFormatCondition styleFormatCondition = new DevExpress.XtraTreeList.StyleFormatConditions.StyleFormatCondition();styleFormatCondition.Appearance.ForeColor = System.Drawing.Color.DarkGray;styleFormatCondition.Appearance.Options.UseForeColor = true;styleFormatCondition.ApplyToRow = true;styleFormatCondition.Condition = DevExpress.XtraGrid.FormatConditionEnum.Expression;styleFormatCondition.Expression = “[Style]”;this.treeList1.FormatConditions.Add(styleFormatCondition);

treeListColumn:TreeList中添加的列

属性:

1.表示这一列为只读:OptionsColumn中的ReadOnly = True 2.固定列的宽度不变:OptionsColumn中的FixedWidth = True 3.表示这一列不可编辑(无法实现复制):OptionsColumn中的AllowEdit = False 4.FieldName: 5.UnboundType:

6.SortOrder:列表中的项排序,SortOrder =Descending,递减排序。SortOrder = Ascending,递增排序。

treeList.AppendNode();//添加节点(TreeListNode)

TreeListNode:(TreeList中的节点)

属性: 1.ImageIndex:正常情况下节点前面显示的图片的索引

2.SelectImageIndex:选中节点时节点前边显示的图片的索引

3.StateImageIndex:节点开头显示的图片索引(在SelectImageIndex之后)4.Level:节点的级别(0:根节点、1:一级节点···)imageCollection 属性:

1.Images:在imageCollection中添加图片

ImageComboBoxEdit ComboBoxEdit 属性:

1.调整下拉菜单直观显示出来的行数(即不用滚动条就可以看的到的行数):DropDownRows 2.Properties.Items:绑定数据源

3.Properties.TextEditStyle:Standard(可输入,可选),HideTextEditor(只能通过下拉菜单选择,选中后不在界面上显示),DisableTextEditor(只能通过下拉菜单选择并且选中后在界面上显示)

4.ToolTip:

5.SelectedIndex:选择的Item的索引(get,set)

事件:

1:EditValueChanged:只要是值改变就会触发 2:SelectedIndexChanged:(值改变触发)SelectedIndex改变触发。3:SelectedValueChanged:(值改变触发)SelectedValue改变触发。

4:DrawItem:光标在下拉菜单上移动的时候触发,即光标在选择项上来回移动时触发

ComboBox(win)

属性:

1.DroppedDown:设置/获取下拉菜单是否展开。

2.SelectionStart:设置光标的位置(输入文本时用,设置为Text.Length可以保证光标在最后一个字符的后面,避免将前边的字符覆盖掉)。事件:

1.TextUpdate:输入的值时(text属性值改变时)触发。(在TextChanged事件之前)2.TextChanged:输入的值时(text属性值改变时)触发。(在TextUpdate事件之后)3.MouseDown:鼠标在控件上按下时触发。

LabelControl:

属性: 事件:

notePane:

属性:

1.MaxRow:设置notePane最大显示行数

TextEdit:单行文本输入

事件:

1.EditValueChanged:TextEdit值改变时候触发

2.Validating:焦点离开TextEdit时触发,验证有效性(有效性的标准通过自己在事件里面的代码来写,若设置了EditMask,进入该事件会先自动根据EditMask为标准来验证有效性,完成之后执行事件里面的代码)3.KeyPress:键盘按下某一个键触发。

属性:

1.TextEdit.Mask.EditMask:可以规定输入的格式,类似正则表达式

2.TextEdit.Mask.MaskType:指定可填写的文本类型(如:数字、字符串或者是根据正则表达式(RegEx)来约束···EditMask与MaskType配合使用,若MaskType= RegEx,EditMas = 某正则表达式,当MaskType是DateTime,Numeric时,EditMask为指定的相应类型)3.MaxLength:可填的最大字符长度,仅当MaskType = None时有效

4.TextEdit.Mask.BeepOnError:当用户输入不满足EdiMask要求时,是否发beep声。5.UseSystemPasswordChar: true –密码框(输入的内容在界面上是 ****)6.实现水印文字:Properties.NullValuePrompt = “输入密码”

Properties.NullValuePromptShowForEmptyValue = true;

memoEdit:多行文本输入

属性: 事件:

checkEdit:

属性:

1.Checked:是否选中

事件:

1.CheckedChanged:勾选状态改变时触发(选中变不选中,不选中变选中)

checkedListBoxControl:(实现多选框)

属性: 事件:

1.DrawItem:光标在选择菜单上移动的时候触发,即光标在选择项上来回移动时触发(与ComboBoxEdit的DrawItem事件相似)2.ItemCheck:勾选或取消勾选Item时触发。(e.Index:点击的Item的索引,e.State:改变的状态)3.方法: 1.UnCheckAll();//全部不选 2.CheckAll();//全选中

PopupContainerEdit:

属性:

1. Properties.PopupControl:(PopupContainerEdit和PopupContainerControl组合,实现下拉组合框)this.popupContainerEdit1.Properties.PopupControl = this.popupContainerControl1;

事件:

1.EditValueChanged 2.QueryResultValue PopupContainerControl:

属性: 事件:

splitContainerControl: barManager: popupMenu:

lookUpEdit:

属性:

1.Properties.DataSource:绑定数据(可以直接将list<>赋值给它)。

2.Properties.TextEditStyle:Standard(可输入),HideTextEditor(只能通过下拉菜单选择,选中后不在界面上显示),DisableTextEditor(只能通过下拉菜单选择并且选中后在界面上显示)3.事件:

panelControl:

属性:

1.BorderStyle(边框风格):NoBorder–无边框,事件:

wizardControl:

属性:

1.HeaderImage:右上角图片。2.CancelText:3.FinishText:4.NextText:5.PreviousText:

当在最后一页时中间按钮变为“结束”

事件:

1.CancelClick:点击“取消”触发。2.FinishClick:最后一页点击结束触发。3.SelectedPageChanging:切换页面时触发。(e.Direction:判断是向前翻页还是向后翻页,e.Page:新页)

4.SelectedPageChanged:切换页面后触发。(e.PrevPage:旧页)

wizardPage:(wizardControl中的每一页)

属性:

1. DescriptionText:2. Text:

事件:

1.PageValidating:验证事件。(e.Direction:判断是向前翻页还是向后翻页,e.Valid = false;翻不过去)2.simpleButton:

属性:

1.事件: buttonEdit:

属性: 事件:

dropDownButton: 属性:

1.DropDownControl:(dropDownButton控件实现下拉框)

增加2个控件barManager1。

dropDownButton 的DropDownControl属性选择popupMenu1。popupMenu1的Manager属性选择事件:

radioGroup:

属性: 事件:

spinEdit:

属性:

1.Appearance.TextOptions.HAlignment:输入的文本的位置,如:Near,近前边。,靠事件:

GridControl 事件: 1.MouseDoubleClick:双击某一行。

gridView

属性:

1.OptionsBehavior.Editable:是否可用

vGridControl 属性:

1.2.3.4.5.OptionsBehavior.Editable:是否可用

OptionsBehavior.ResizeHeaderPanel:是否可以拖拽改变每一行的高度 OptionsBehavior.ResizeRowHeaders:是否可以拖拽改变每一列的宽度。LayoutStyle:布局风格

OptionsView.AutoScaleBands:当LayoutStyle为SingleRecordViewBandsView,设置该属性为true,列宽自动填充 6.XtraTabControl 属性:

1.ClosePageButtonShowMode:如何显示每个tabPage上的关闭按钮。

如:InActiveTabPageHeader:当TabPage为当前选中时显示关闭按钮。2.HeaderLocation:标签位置(上下左右)3.ShowTabHeader:是否显示标签

4.HeaderOrientation:标签方向(Horizontal:水平,Vertical竖直)5.HeaderButtons:当tabpage过多,需要翻页时,设置翻页按钮如何组合。如

6.TabPageWidth:统设标签宽度。

事件:

1.CloseButtonClick:点击标签上的X按钮事件

XtraTabPage:

属性:

1.ShowCloseButton:是否显示关闭按钮。2.TabPageWidth:这一页的标签宽度。

第五篇: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;窗体的标题为生成可执行文件的标题 Me.Left =(Screen.WidthMe.Height)/ 2; 窗体位置在屏幕中间

ListView1.ColumnHeaders.Add , , “文件名称”,ListView1.Width / 3, 0 ’第一个标题栏是“文件名称“,长度为ListView1 宽度的三分之一,文字左对齐

Set clmX = ListView1.ColumnHeaders.Add(, , “序号”, ListView1.Width / 5, 2)’第二个标题栏是“序号“ 依次往下

Set clmX = ListView1.ColumnHeaders.Add(, , “文件大小 ”, ListView1.Width / 4, 1)Set clmX = ListView1.ColumnHeaders.Add(, , “创建时间”, ListView1.Width / 3, 0)ListView1.BorderStyle = ccFixedSingle;边界类型 ListView1.SmallIcons = ImageList1 ;

关联图标仓库ImageList1 For Counter = 0 To File1.ListCount1 Fname = File1.List(Counter)Set itmX = ListView1.ListItems.Add(, , Fname);添加文件名

itmX.SubItems(1)= CStr(Counter + 1)+ “/” + CStr(File1.ListCount)itmX.SubItems(2)= CStr(FileLen(CurrentDir & Fname))itmX.SmallIcon = 1 itmX.SubItems(3)= Format(FileDateTime(CurrentDir & Fname), “HH:MM YYYY/MMMM/DD”)Next Counter;添加增强列表框的各个项目

Dir1.ToolTipText = “当前目录是:” & Dir1.Path;提示 End Sub----通过以下代码取得鼠标单击增强列表框返回的项目名称: Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)allfname = Item;文件名

dname= CurrentDir& Item;完整的路径和文件名

sElectmain = ListView1.SelectedItem.Index;文件序号 End Su

下载Visual C++ 2010 MFC ActiveX 控件小结[推荐]word格式文档
下载Visual C++ 2010 MFC ActiveX 控件小结[推荐].doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    iOS UITextField控件总结

    iOS UITextField控件总结 //初始化textfield并设置位置及大小 UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 130, 30)]; //设置边框样式,只......

    MFC动态添加控件及响应函数

    MFC动态添加控件及响应函数 应该注意:控件也是一个窗口。在添加控件的时候空间变量最好是全部变量或者是局部指针变量,这样即使函数结束也不会造成变量被销毁。下面以动态添加......

    网络发票打印控件操作手册

    网络发票打印控件操作手册 1. 控件位置下载:首页>>常用软件下载>>下载中心>>办税软件>>网络开票打印控件. 2.下载解压之后,双击文件CLodopPrint_Setup_for_Win32NT_2.047.exe......

    手机Android系统常用控件总结

    找工作,上长沙英才网 手机Android系统常用控件总结 Notepad++编写 可以负责粘贴到其中去 看得更清楚。(内容包括了Android中的大部分常用控件及其事件的监听) 第一章 1.1 Andr......

    农行安全控件安装说明[精选合集]

    农行安全控件安装说明 口令卡客户会因没有正确安装农行安全软件造成口令卡无法支付或者冻结。一般表现为在网页左下角有提示网页上有错误无法完成交易 。 客户的浏览器有拦......

    控件在PowerPoint中的应用

    控件在PowerPoint中的应用 控件在PowerPoint中的应用 摘要:PowerPoint是Microsoft公司推出的Office系列产品之一,主要用于设计制作教学案例、广告宣传、产品演示的电子版幻灯......

    vb控件数组的习题及答案

    电子教室学生注册时姓名文本框部分请输入:如:1411111111李四 学号+姓名,中间不加空格) 实验准备: 请同学们删除d:ex21文件夹里面的内容 如果没有ex21文件夹,请在d: 下新建ex21......

    Web测试中,各类web控件测试点总结(推荐)

    Web测试中,各类web控件测试点总结 一 、界面检查 进入一个页面测试,首先是检查title,页面排版,字段等,而不是马上进入文本框校验 1、页面名称title是否正确 2、当前位置是否可见......