精华内容
下载资源
问答
  • 请问vb语言多个数组给多个控件调用,判断数组控件的关联性怎么判断,怎么得到数组关联的控件的其它属性?
  • 控件可以调用二维数组么?vb的控件数组可以是二维么?像tn那样的控件中子数组的定义是什么含义?
  • VB编程语言中每个控件调用数组,怎么知道对应的控件调用的数组的下标,可不可以限制一个数组只被某个控件调用下标?
  • vb语言内的控件调用多个嵌套数组一个,怎么通过事件过程方式写?怎么每个控件自动得到对应那个数组
  • [混合编程]VC VB 数组

    2008-03-02 14:46:00
    一种是VC生成ActiveX 控件(.ocx),在VB中插入;还有一种是在VC中生成ActiveX Automation服务器,在VB调用。相对而言,第一种方法对VC编程者要求最低,但要求你伙伴进行配合,我推荐这种方法。 先说说VC++...
    一般来说,VB和VC共同编程有3种方式:一种是VC生成DLL,在VB中调用DLL;一种是VC生成ActiveX 控件(.ocx),在VB中插入;还有一种是在VC中生成ActiveX Automation服务器,在VB中调用。相对而言,第一种方法对VC编程者的要求最低,但要求你的伙伴进行配合,我推荐这种方法。 
         先说说VC++的编程。首先在VC++中生成Win32 DLL工程。在这个工程中添加几个函数供VB用户调用。一个DLL中的函数要想被VB调用,必须满足两个条件:一是调用方式为stdcall,另一个是必 须是export的。要做到第一条,只须在函数声明前加上__stdcall关键字。如:
         short __stdcall sample(short nLen, short *buffer)
         要做到第二条,需要在*.def文件中加上如下的几行:
         EXPORTS
         sample @1
         这里的sample是你要在VB中调用的函数名,@1表示该函数在DLL中的编号,每个函数都不一样。注意这里的函数名是区分大小写的。 至于你说的需要传递大量数据,可以这样做,在VB中用一个数组存放数据,然后将该数组的大小和地址传给VC(至于如何在VB中编程我会在下面介绍)。就象 上面的例子,nLen是数组大小,buffer是数组地址,有了这两条,你可以象使用VC的数组一样进行处理了。至于输出图形,可以生成WMF或BMP格 式,让VB调用。不过,我认为也可以直接输出到视窗,只要VB将窗口的句柄hWnd和hDC以及视窗的绘图位置(VB和VC采用的坐标系必须一致才行)传 给VC就行了。而VB的AutoRedraw属性必须为False,在Paint事件中调用VC的绘图程序。
         再谈谈VB的编程。VB调用DLL的方法和调用Windows API的方法是一样的,一般在VB的书中有介绍。对于上面一个例子,先要声明VC函数:
         Declare Function sample Lib "mydll.dll" (ByVal nLen As Integer, buffer As Integer) As Integer
         这里mydll.dll是你的dll的名字。你可能已经注意到了两个参数的声明有所不同,第一个参数加上了ByVal。规则是这样的:如果在VC中某个参数声明为指针和数组,就不加ByVal,否则都要加上ByVal。在VB中调用这个函数采用这样的语法:
         sample 10, a(0)
         这里的a()数组是用来存放数据的,10为数组长度,这里的第二个参数不能是a(),而必须是要传递的数据中的第一个。这是VB编程的关键。
         下面在说几个可能遇到的问题。一个问题是VB可能报告找不到dll,你可以把dll放到system目录下,并确保VB的Declare 语句正确。另一个问题是VB报告找不到需要的函数,这通常是因为在VC中*.def文件没设置。第三种情况是VB告诉不能进行转换,这可能是在VC中没有 加上__stdcall关键字,也可能是VB和VC的参数类型不一致,注意在VC中int是4个字节(相当于VB的Long),而VB的Integer只 有2个字节。必须保证VB和VC的参数个数相同,所占字节数也一致。最后一个要注意的问题是VC中绝对不能出现数组越界的情况,否则会导致VB程序崩溃。
         总的来说,你和你的伙伴需要一些时间来进行协调和摸索,但这种方法绝对可行,也不难掌握。
     
    展开全文
  • 控件里的vb编程允许在数组中再插入一个括号的调用,这个是用什么语句做到的?dim语句里可以二次定义dim语句么?
  • 怎么将数组作为参数带入到vb窗体上的控件里呢?怎么在控件调用多个数组,完成数组行复制功能?
  • VB6语言系统里控件下使用将字符串作为数组下标方法能不能放在函数里调用?函数里怎么传一个数组也通过字符串得到下标?
  • vb语言用中什么语句可以实现对数组嵌套定义放入控件调用呢?怎么在控件中使用可以嵌套定义数组的形式?
  • VB 生成验证码的控件附实例调用例子,支持中文验证码控件,内含Demo和验证码控件源码,使用时请添加中文验证码.ocx引用。验证码生成11到13随机数数字随机数,0到6随机数,0到15随机数,从1到15随机数,从0到14...
  • vb编程语言调用ocx控件参数传入过程,参数内存是怎么复制?如果是一个数组参数,这个数组全部复制么?怎么避免ocx内重新分配内存降低性能?
  • 请问vb语言中怎么在数组下标拷贝时候使用谓词限定符?代码是写在调用的函数里还是控件里,用什么方式?
  • vb控件开发 开发ocx

    热门讨论 2011-02-28 16:12:16
    vb的文本框等等控件的系统右键菜单里追加自己定义的菜单。 77 , 77.txt 在VB中用定时控件实现长定时操作 78 , 78.txt 在Visual Basic中,在GotFocus事件中快速选定文本 79 , 79.txt 在程序中注册和注销 OCX 控件 ...
  • vb6中字符串转控件方法

    千次阅读 2013-12-22 20:24:38
    vb6中字符串转控件名的方法 比如我想用"label1"来调用label1控件,我们可以用: me("label1")来调用label1的所有属性: me("label1").caption="xxx" me("label1").backcolor=...对于控件数组的调用是这样的: me(

    vb6中字符串转控件名的方法


    比如我想用"label1"来调用label1控件,我们可以用:

    me("label1")来调用label1的所有属性:

    me("label1").caption="xxx"

    me("label1").backcolor=vbred

    ...

    ...

    所有属性都可用,可查看label1所有的属性。


    对于控件数组的调用是这样的:

    me("label2")(0).backcolor= vbred

    me("label2")(1).backcolor= vbred
    ...

    ...

    用load增加一个控件数组成员如下:

    load me("label2")(30)



    展开全文
  • VB一些常用控件集,以及一些方法模块,编辑框.ctl、进度条、全局热键钩子、网站服务器、托盘控件、WinSock.ctl、曲线图.ctl、压缩算法-升级版.cls、数组加解密.cls、打开文件属性面板.bas等,其中一个模块部分代码...
  • com复杂性,有点超出我想象。与其说Freebasic与vb的互动,不如说Freebasic与com关系。Freebasic如何调用com呢?...Freebasic编译com,一个很明显意义,就是在64位中,为...VBA的数组,全称safeArray。vbavar...

    com的复杂性,有点超出我的想象。

    与其说Freebasic与vb的互动,不如说Freebasic与com的关系。
    Freebasic如何调用com呢?Freebasic如何编写com呢?
    Freebasic编译com,一个很明显的意义,就是在64位中,为VBA提供类库。
    基础知识:
    1、数据类型的转换:VBA的string全称是BSTR。这是VBA独有。VBA的数组,全称safeArray。vba的variant,是一个复合型的数据结构。
    2、COM组件
    com(Component Object Model组件对象模型)是开发软件组件的一种方法。
    com组件实际上是一些小的二进制可执行程序,它们可以给应用程序,操作系统以及其他组件提供服务。
    在COM构架下,人们可以开发出各种各样的功能专一的组件,然后将它们按照需要组合起来,构成复杂的应用系统。
    可以在多个应用系统中重复利用同一个组件;可以方便的将应用系统扩展到网络环境下;COM具有与语言,平台无关的特性。

    CLSID与ProgID
    每个COM接口和组件类都有一个全球唯一的标识符GUID,接口的标识符叫做IID,组件类的标识符叫CLSID(其实都是GUID),组件类还可以用一个别名ProgID来标识,
    ProgID由类名+工程名组成,例如flash控件的ProgID: "ShockwaveFlash.ShockwaveFlash"

    动态接口、静态接口
    com有两种类型的接口,一种是动态语言用到的IDispatch接口,一种是静态语言用到的静态接口.
    我们将IDispatch接口称为动态接口,而非IDispatch类接口称为静态接口.

    动态接口:IDispatch接口对象。vba中使用createobject创建对象(俗称晚期绑定)用的就是Idispatch接口。

    静态接口:基于IUnknown指针实现的非IDispatch接口。vba并不支持指针,所以vba通过引用tlb进行转换(俗称前期绑定)。vba中无法直接使用iunkown。

    Vtable方式:这是性能最好的访问com的方式,不过必须对指针和com有着相当深的了解,才能用好它。否则很容易出错。

    Freebasic提供了全部的三种访问com的方式。一般情况下,最好使用Idispatch和Iunknown方式。


    接下来我要介绍的axsuite3库,很重要,对于使用freebasi访问com组件有很大的便利。(记住,访问com组件和编写com组件难度是很不一样的,后者要难得多了)
    如果和aauto的com库比较起来,坦白地说,axsutite3封装得不太好,起码不够直观和不够OOP。略表遗憾。
    当你使用ocx的控件时,axsuite要求你的系统上要有ATL.dll(或Atl71.DLL),换句话说,axsuite是以ATL方式实现对com的使用。

    函数:
    Sub AxInit(ByVal Host As Integer=False)
    说明:初始化axsuite。如果要调用的ocx等窗体控件,则host=true,如果是普通的非窗体的com组件,则host为false
    如:Axinit(True)

    Function AxCreateObject overload(strProgID1 AS string, strIID1 AS string = "") as any ptr
    说明:创建对象。Progid或IID都是string
    如:excelApp=AxCreateObject("excel.applicaiton")
           excelApp=AxCreateObject("{8E27C92B-1264-101C-8A2F-040224009C02}",{8E27C92C-1264-101C-8A2F-040224009C02}")

     
    Function  AxCreateObject overload( hwnd_control as hwnd) as any ptr
    说明:直接通过系统分配的hwnd,来创建窗体类的com对象。
    如: ocxPtr=axCreateobject(hwnd)

    Sub AxReleaseObject(byVal Objptr as any ptr)
    说明:释放对象。相当于vba中的set object=nothing (即引用数-1)

    Function AxCreateControlLic (ByVal strProgID AS lpOLEStr, byval hWndControl AS hwnd, byval strLicKey AS lpwstr) AS Long
    说明:用于带有License Key的com对象。这在天朝中,估计用得很少了。

    Function AxCreateUnreg(ByVal hdll As HMODULE, byval CLSIDS As string, byval IIDS As string,ByVal hWndControl AS hwnd = 0) as any ptr
    说明:创建一个免注册的com对象或ocx对象。

    Sub setObj(byval pxface as uinteger ptr,ByVal pThis as uinteger) 

    Sub setVObj(byval pxface as uinteger ptr,ByVal vThis as variant)

    Function ToBSTR(cnv_string As String) As BSTR
    说明:将Freebasic的string转换成VB的Bstr字符串
    如: dim myBstr as bstr=ToBstr("Test string")

    Function FromBSTR(ByVal szW As BSTR) As String
    说明:将vb的bstr转换成freebasic的string。

    Function VariantS(ByRef v As variant)As String
    说明:将variant中的bstr转换成freebasic的string。

    Function VariantB(ByRef v As variant)As bstr
     说明:将variant中的bsctr转换成单纯的bstr。相当于vba中的cstr(variant)

    Function VariantV(ByRef v As variant)As Double
    说明:将variant中的数字转换成double。?不知道会不会带来什么不可预测的后果。数字类型那么多种。

    Function Vptr(Byval x As Any Type*) As Variant Ptr
    说明:将Freebasic的任何一种数据类型转换成variant的指针。
    如:Dim vVar As Variant
    vVar=*vptr(20) : vVar=*vptr(20.5) : vVar=*vptr(“Hello there”)

    VLet (As variant, x As Any Type*)  
    说明: 这是一个 宏macro 等价 Vptr 函数,可以直接使用。编译器会自动转成vptr
    用这个宏函数,会显得更直观。
    如:Dim vVar As Variant : Vlet(vVar, 12.75) : Vlet(vVar, “Test String”)
    类似这样的有用宏函数还有:
    toVariant(x) :这里的x as any  type
    Ax_FreeStr(bs) :为Bstr字符串分配内存
    Kill_Bstr(bs):将Bstr字符串从内存中删除。
    以上宏函数都可以在代码中直接使用。
    *any type 是指下面这些数据类型: (variant/string/byte/short/Integer/Longint/single/Double/BSTR/Ubyte/Uinteger/Ulongint/Ushort/Ubyte)

    **************************************
    接下来这部分,是有点悲催的封装
    ***************************************
    axsuite3中使用Idispatch访问com组件的函数:
    Sub AxCall (ByRef pmember as tmember,...)
    说明:写或设置Idispatch的属性值。(注:这样的封装方式有点怪)

    Function AxGet (ByRef pmember as tmember,...)as variant
    说明:获取Idispatch的方法的返回值,或获取Idispatch的属性值

    Vtable方式访问com组件:
    Obj->lpVtbl->Method(Obj,…) 
    RetValue=Obj->lpVtbl->Method(Obj,…)
    如:
    scode=dx->lpvtbl->Direct3DCreate(dx,@d3d)   '获取Direct3D的接口
    d3d->lpvtbl->GetAdapterDisplayMode(d3d,D3DADAPTER_DEFAULT,@DispMode)




    **************************************
    Axsuite中使用Ocx控件的一些辅助手段:
    Function  AxWinFull(byVal h_parent as hwnd, name1 as string, progid as string, _ 
    x as integer, y as integer, w as integer, h as integer, style as integer = WS_visible or WS_OVERLAPPEDWINDOW, exstyle as integer = 0) as hwnd

    说明:在vb中使用Ocx,我们都知道ocx必须放在form中才能使用,ocx无法单独使用。
              这说明ocx必须要有一个窗口容器。
             本函数就是用于创建一个普通窗体,作为ocx控件的容器。并返加一个窗口句柄
         

    Function  AxWinTool(byVal h_parent as hwnd, name1 as string, progid as string, _
     x as integer, y as integer, w as integer, h as integer, style as integer = WS_visible, exstyle as integer = WS_EX_TOOLWINDOW ) as hwnd

    说明:创建一个工具条,作为ocx控件的窗口容器。

    Function  AxWinChild(byVal h_parent as hwnd, name1 as string, progid as string, _ 
    x as integer, y as integer, w as integer, h as integer,style as integer = WS_visible or WS_child or WS_border, exstyle as integer = 0 ) as hwnd

    说明:创建一个子窗体,作为ocx控件的容器
    注:h_parent指窗体的句柄,name1是指窗体的名称,progid指ocx的progid,
    x,y指窗体的左上角的坐标位置,w,y分别是窗体的宽度和高度。style,exstyle详见api教程。

    Sub AxWinKill(byVal h_Control as hwnd)
    说明:销毁窗体。关闭窗口时,必须销毁窗体
    Sub AxWinHide(byVal h_Control as hwnd, byVal h_Parent as hwnd = 0)
    隐藏控件和窗体

    Sub AxWinShow(byVal h_Control as hwnd, byVal h_Parent as hwnd = 0)
    显示控件和窗体

    Function  AxWinUnreg(byVal h_parent as hwnd, x as integer, y as integer, w as integer, h as integer, style as integer = WS_visible or WS_child or WS_border, exstyle as integer = 0) as hwnd

    说明:免注册使用ocx控件时,创建一个普通窗体作为Ocx的容器。

    FreeBasic调用COM组件-ganlinlao-access培训,access教程,access下载,access技巧,access破解,access实例,access源码,access数据库,access开发,access软件,ACCESS学习,access文章,access应用-Office中国论坛/Access中国论坛 - Powered by Discuz!
    http://www.office-cn.net/home.php?mod=space&uid=230471&do=blog&id=15256

    展开全文
  • 常用VB模块

    2011-12-14 22:03:06
    控件操作 数组操作 汉字操作 系统调用 一些常用模块
  • [求助]vb显示图片一点问题

    千次阅读 2005-06-24 11:16:00
    VB里面我已经把JPG图片读成2进制流保存在chunk()数组中Dim Chunk() as Byte有什么控件或者方法能够直接把这个数组在窗体上显示成图片而不用保村成文件后调用我在做一个土前浏览程序,把JPG图片中EXIF解析后提取...

    VB里面我已经把JPG图片读成2进制流保存在chunk()数组中
    Dim Chunk() as Byte
    有什么控件或者方法能够直接把这个数组在窗体上显示成图片而不用保村成文件后调用

    我在做一个土前的浏览程序,把JPG图片中的EXIF解析后提取出缩略图(暂时保存在BYTE数组中),图片多的话保存成文件太耗硬盘资源了。

    展开全文
  • VB程序设计及应用

    2012-11-26 14:07:12
    数据库、对象的链接和嵌入、多媒体控件以及常用的 ActiveX 控件的应用,最后介绍了打字练习、画板、学生成绩管理系统等应用程序实例。本书配有大量的实例和测试题,并配有 CAI课件、电子教案。本书由浅入深、通俗...
  • 主要的数据库存取对象中也仅有Database、Dynaset对象可通过数据控件的属 性提供,其它的重要对象如TableDef、Field、Index、QueryDef、Snapshot、Table等均不能在VB的标准版中生成,所以使用数据存取对象变量的方法...
  • 6.2.1 编辑控件的通知消息 6.2.2 编辑控件消息 6.2.3 程序举例 6.3 列表框消息 6.3.1 列表框消息的分类 6.3.2 列表框消息 6.3.3 列表框消息举例 6.4 组合框消息 6.4.1 组合框消息 6.4.2 组合框消息举例 ...
  • 其主要课程内容包括VB程序设计语言概述,VB集成开发环境简介,面向对象程序设计方法简介,VB语法基础(基础语法、程序结构、数组、子程序和函数等),各种常用控件的使用,以及在图形、文件操作和数据库应用等方面的...
  • VB课程设计俄罗斯方块

    热门讨论 2011-02-25 10:46:55
    我们的这个俄罗斯方块游戏主要是利用command控件的visible属性完成效果的,其实在游戏区图形框可以看成是由许多的command小方块组成,方块运动的过程就是造型里方块显示或者隐藏,就像现在的霓虹灯效果一样,由时钟...
  • VB6本身只支持16色(4位)和256色(8位)图标,这种图标只是早期Windows版本所采用 图标格式标准。现在各种高清真彩色(32位带Alpha通道、24位不带Alpha通道)早已经很流行 并且普遍使用了,但在VB6中却不能直接...
  • 2、当窗体上有三个文本框和一个命令按钮,若程序运行时,焦点定位在第三个文本框(Text3)处,应对何控件的什么属性进行何种设置? 3、若要对窗体上的三个文本框输入数据,个控件焦点的移动可通过Tab键(系统本身...
  • 另外还提供该控件在VC,VB的调用方式以及相关数据的处理。 关键字:ActiveX,Socket,VARIANT, SAFEARRAY,BSTR。 回顾:在上一篇文章《标准MFC WinSock ActiveX控件开发实例》中我们详细介绍了控件的开发过程...
  • 微软 VB2010 源码包

    2013-05-22 02:21:18
    ProcessViewer:通过调用 GetProcesses 方法将当前计算机上进程将显示在 ListView 控件中 ServiceManager:演示如何使用 System.ServiceProcess 命名空间控制 Windows 服务 WMI:演示如何使用 System.Management...
  • vb学生成绩管理系统

    2013-06-28 08:55:24
    2.设置窗体间的调用关系 2.设置窗体间的调用关系 ’调用增加课程窗体 Private Sub AddCourse_Click(Index As Integer) frmAddCourse.Show End Sub ’调用增加成绩窗体 Private Sub AddGrade_Click...
  • 学编程步骤.txt

    2010-08-11 18:02:16
    汇编开始的时候是很难,那些各种各样的寄存器,分段的内存地址,是很难理解,可是这些知识理解了以后,后面的内容就简单了,学习8086的那些指令,再加上一些伪操作,还有DOS和BIOS中断的调用,就可以看懂书上的汇编...

空空如也

空空如也

1 2 3 4 5
收藏数 87
精华内容 34
关键字:

vb数组控件的调用