请在声明区中放入以下声明ConstGWL_EXSTYLE=(-20)ConstWS_EX_TRANSPARENT=&H20&ConstSWP_FRAMECHANGED=&H20ConstSWP_NOMOVE=&H2ConstSWP_NOSIZE=&H1ConstSWP_SHOWME=SWP_FRAMECHANGEDOrSWP_NOMOVEOrSWP_NOSIZEConstHWND_NOTOPMOST=-2PrivateDeclareFunctionSetWindowLongLib''user32''Alias''SetWindowLongA''(ByValhwndAsLong,ByValnIndexAsLong,ByValdwNewLongAsLong)AsLongPrivateDeclareFunctionSetWindowPosLib''user32''(ByValhwndAsLong,ByValhWndInsertAfterAsLong,ByValxAsLong,ByValyAsLong,ByValcxAsLong,ByValcyAsLong,ByValwFlagsAsLong)AsLong在Form_Load使用的范例如下:PrivateSubForm_Load()SetWindowLongMe.hwnd,GWL_EXSTYLE,WS_EX_TRANSPARENTSetWindowPosMe.hwnd,HWND_NOTOPMOST,0&,0&,0&,0&,SWP_SHOWMEMe.RefreshEndSub->
[] []
如前所述,MicrosoftJet不能锁定单个的记录,每次读、写以及锁定的都是一页数据,面不是一个记录。根据记录的大小,一页可能包含多个记录。当锁定一个记录时,就会锁定那一页上的所有记录,如图8.6所示。在高并发应用程序中,要求对指定记录提供畅通无阻的访问。可以用不同的策略来实现设计。1.使用Text类型。可以用Text数据类型把字段添加到表中,直到记录长度超过1024个字节。由于Text是变长数据类型,必须显式地用数据来填补字段以获得一个定长格式。同时,这种技术可能会降低性能,因为如果每个记录都占用2K磁盘空间,则数据库的长度将会增加。因此,建议不要使用Text数据类型。2.使用CHAR类型。SQLDDLCHAR是一种定长数据类型。如果使用这种类型,则可不必用数据来填补字段。使用CHAR数据类型是实现这种技术的最简单而且保险的唯一方法。3.使用开放锁定。另一种策略是:在任何地方都使用开放方式锁定。虽然开放式锁定不能避免页面锁定,但它可以使记录..
[] []
用VB编写入侵监听程序(下)程序的代码以及说明如下:‘本程序在VB6.0+Windows2000下测试通过!DimtmpstrAsStringDimNOW_OUTAsInteger'总共出去连接的有几个WinsockPrivateSubCommand1_Click()ListPorts.AddItemtxtADDPORT.TextEndSubPrivateSubCommand2_Click()OnErrorResumeNextIfCommand2.Caption=''监听''ThenFori=0ToListPorts.ListCount-1LoadWinsock1(i 1)'加载监听端口的winsock1数组控件Winsock1(i 1).LocalPort=ListPorts.List(i)'设定端口Winsock1(i 1).Listen'监听NextiCommand2.Caption=''停止''ElseFori=1ToWinsock1.Count-1UnloadWinsock1(i)NextiFori2=1ToWinsock2.Count-1UnloadWinsock2(i2)Nexti2Command2.Caption=''监听''EndIfEndSubPrivateSubCommand3_Click()UnloadMeEndSubPrivateSubForm_Load()txtLOG.Text=''日志:''&vbCrLfNOW_OUT=1EndSubPrivateSubWinsock1_ConnectionRequest(IndexAsInteger,ByValrequestIDAsLong)LoadWinsoc..
[] []
将RGB想成3D之X,Y,Z轴,则BMP的RGB为(r,g,b)与座标(Y,Y,Y)距离最小时的Y即为灰阶值Y=0.29900*R 0.58700*G 0.11400*B整数化Y=(9798*R 19235*G 3735*B)/32768RGB(Y,Y,Y)就可以了需一个内有彩色图的PictureBox,CommandBoxOptionExplicitPrivateDeclareFunctionGetPixelLib''gdi32''_(ByValhdcAsLong,ByValxAsLong,ByValYAsLong)AsLongPrivateDeclareFunctionSetPixelVLib''gdi32''_(ByValhdcAsLong,ByValxAsLong,_ByValYAsLong,ByValcrColorAsLong)AsLongPrivatetmpPicAsPicturePrivateSubForm_Load()Picture1.ScaleMode=3'设为PixelPicture1.AutoRedraw=True'设定所有Pixel的改变不立即在pictureBox上显示SettmpPic=Picture1.PictureEndSubPrivateSubCommand1_click()Dimwidth5AsLong,heigh5AsLong,rgb5AsLongDimhdc5AsLong,iAsLong,jAsLongDimbBlueAsLong,bRed->
[] []
在播放器的主界面放置一个能随音乐的播放而旋转的光盘是不是很诱人?如若你对此感兴趣又不知从何下手,请往下看。先准备几幅图,格式不论,但Icon图标最理想。图的数量将是光盘旋转效果的决定因素之一,一般八张比较合适。这八幅图必须是光盘处于0度、45度、90度……315度时的实际模样。下一步:给工程添加三个控件,ImageList一个,Image一个,Timer一个。ImageList是用来装载图片的,请将准备好的图片按顺序一一添加到此控件中;Image控件则是显示旋转光盘的容器了,将其放到合适的位置即可,必要时给它加载一幅图片;Timer控件则用于控制光盘的旋转。最后,编写代码:OptionExplicitDimiasInteger'图标索引变量PrivateSubForm_Load()Timer1.Enabled=TrueTimer1.Interval=100'可根据需要作调整i=0'图标索引变量初值EndSubPrivateSubTimer1_Timer()i=i 1'随控时器变化每次加1'若索引号大于图标总数则退回第一幅Ifi>ImageList1.ListImages.CountTheni=1'从..
[] []
对于XML文档,插入、修改、检索等数据操作工作可以通过一个XML解析器及其列举的一系列对象来完成。 Microsoft的XML解析器驻留在名为msxml.dll的动态链接库文件中。因为msxml是一个COM对象,所以可以在任何兼容ActiveX的环境中使用它,如在VB和 ASP中。本文介绍在Visual Basic中操纵XML文档的具体方法。 装载XML文档 新建一个VB Standard EXE工程项目。在Form1中添加一个CommandButton控件,将其Name和Caption属性分别设为cmdLoad和Load XML。为了使用msxml解析器,必须事先设置工程项目对msxml.dll的引用。选择Project菜单的 References命令,选中Microsoft XML, version 2.0或更高版本。将下列代码加入 cmdLoad_Click事件: Option Explicit
Dim xml As DOMDocument
Private Sub cmdLoad_Click()
Set xml = New DOMDocument
Call xml.Load(App.Path & “flight.xml")
' flight.xml为描述航班信息的XML文档
End Sub 运行该程序..
[] []
DirectX7.0终于出现了,同前面DirectX6相同,版本7也带了一个庞大(129M)的SDK开发库,同DirectX6SDK库相比,DirectX7的SDK库提供了以下新的功能:*对于VisualBasic的支持。用户可以使用类库在VisualBasic环境下开发基于DirectX的程序。*提供更多DirectX3D立即模式(ImmediateMode)下的API函数,以支持DirectX7中新的3D特效,包括立体环境映射、顶点混合等。*DirectMusic支持DownLoadableSoundLevel2标准。*DirectInput支持8按键的游戏杆设备,同时支持Microsoft的力反馈摇杆。SDK库提供了读取力反馈效果文件的方法。同时提供了ForceEditor程序来建立效果。对于VB爱好者来说,新的SDK库终于提供了完整的对VB的支持,现在终于可以使用VisualBasic来编写DirectX的程序了。一、DirectXSDK库的安装微软提供的SDK库是一个“重”达129M的dx7sdk.exe自解压缩文件,你可以上网下载或者从配套光盘上获得这个文件。双击文件就会弹出Winzip自解压缩对话框。在弹出..
[] []
在Windows的大多数场合下,鼠标都是始终可见的。但在有些场合需隐藏鼠标,使之不可见,以免影响屏幕画面的整体效果,如屏幕保护程序运行时,鼠标就是不可见的。在VB中可通过调用WindowsAPI函数ShowCursor()来非常轻松地实现鼠标的隐藏。方法如下:方法一:首先在全局模块中声明函数如下:DeclareFunctionShowCursorLib''User''(ByValbShowAsInterger)AsInterger当bShow为True时,系统内部计数器加1;当bShow为False时,计数器减1。只有当计数器值大于或等于零时,鼠标才显示出来。通常情况下鼠标是显示的,并且计数器值为0,因此只需简单地调用ShowCursor()函数即能实现鼠标的隐藏与显示:SubForm—LoadDimrc%rc%=ShowCursor(False) '隐藏鼠标……rc%=ShowCursor(True) '显示鼠标Endsub此种方法下ShowCursor(False)与ShowCursor(True)必须成对使用,否则有可能造成鼠标“丢失”的现象,即调用若干次ShowCursor(True)也有可能显示不出鼠标来(视内部计数..
[] []
UDP协议基础: UDP(UserDatagramProtocol)是一种无连接协议,与TCP操作不同,计算机间并不需要建立一个连接,同时,一个UDP应用可同时作为应用的客户或服务器方。 由于UDP协议并不需要建立一个明确的连接,因此建立UDP应用要比建立TCP应用简单得多。在TCP应用中,一个Winsock控制必须明确地设置成“监听”,而其它Winsock控制则必须使用Connect方法来初始一个连接。 使用UDP协议,在两个Winsock控制间进行数据的发送,在连接的两端必须完成以下三步: 1.设置RemoteHost属性为其它计算机的名称; 2.设置RemotePort属性为第二个Winsock控制的LocalPort属性的值; 3.申请Bind方法。 通过使用方法Bind,则可将该Winsock控制捆绑到一个本地端口,以便该Winsock控制使用该端口来进行类似TCP的“监听”功能,并防止其它应用使用该端口。 使用该协议传送数据,首先设置客户计算机的LocalPort属性。而作为服务器的计算机仅需要设置RemoteHost..
[] []
MicrosoftAccess是VisualBasic最常用的数据库,但VisualBasic没有提供类似FoxproforWindows的BROWS命令的函数来浏览Access数据库。本程序提供了一种类似BROWS命令界面浏览Access数据库的方法,感兴趣的读者可以把这个程序改写为带参数(数据库名、表名、字段名、字段宽度等)的子程序,实现类似Foxproforwindows的BROWS命令的功能,在自己的应用程序中调用。首先,在窗口中定义一个网格(gridl)、一个列表框(list1)、一个普通对话框(dlg)、一个数据察觉项(datal)、两个命令按钮(command1和command2),排好位置。程序执行时,按“打开”按钮打开一个对话框,选定数据库文件后程序在列表框中显示数据库包含的表名,单击列表框中的表名即可浏览该表。本程序可自动根据字段长度和字体大小设置浏览区的大小,以保证浏览区不会超出窗口。如果窗口满足不了浏览区,程序自动给浏览区加水平或竖直滚动条。附程序清单:1SubCommand1_Click()'鼠标器点“打开”..
[] []
当要应用一个控件的字体到另一控件时,最直接的方法就是直接赋值:SetText2.Font=Text1.Font但多数情况下这种方法并不奏效,因为这实际上是将同一字体的引用分配给了2个控件。换言之,当随后修改其中之一控件的字体时,另外一个控件也受到影响。因此,要实现我们的目的,需要做的就是克隆字体对象并赋值给需要的控件。最简单的克隆字体的方法是手工地拷贝所有单独的字体属性,就象下面一样:FunctionCloneFont(FontAsStdFont)AsStdFontSetCloneFont=NewStdFontCloneFont.Name=Font.NameCloneFont.Size=Font.SizeCloneFont.Bold=Font.BoldCloneFont.Italic=Font.ItalicCloneFont.Underline=Font.UnderlineCloneFont.Strikethrough=Font.StrikethroughEndFunction'函数的应用SetText2.Font=CloneFont(Text1.Font)如果使用VB6,就可以使用PropertyBag对象快速拷贝所有字体属性,并且代码会很简练、速度也快2倍:FunctionCloneFont(FontAsStdFont)AsStdFontDimpbA..
[] []
象Word那样,在“文件”菜单中可以找到我们最近打开或编辑过的文件。这是程序在运行时创建了动态菜单的缘故。VB程序实现此功能有很多文章探讨过,但大都着眼于Windows的注册表。我们的注册表早已发福了,有没有办法不让她再增加负担?用INI文件!INI文件是系统、应用程序的配置文件。它可以使得我们的VB程序更具灵活性,充分地利用它自然也能够实现动态菜单的创建。下面给个例子。首先,我们得给程序添加一个模块,在模块中申明读写INI用的两个WindowsAPI函数,并在其中封装自定义的读取、写入INI的函数:OptionExplicit'读写INI的API函數PublicDeclareFunctionWritePrivateProfileStringLib''kernel32''Alias''WritePrivateProfileStringA''(ByVallpApplicationNameAsString,ByVallpKeyNameAsAny,ByVallpStringAsAny,ByVallpFileNameAsString)AsLongPublicDeclareFunctionGetPrivateProfileStringLib''kernel32''Alias''GetPrivateProfileStringA''(ByVallpA..
[] []
VisualBasic32-bit版本的字串处理采用Unicode,也就是说字串在VB内部是以Unicode的格式来存放。何谓Unicode?简单的说,就是每一个字元都是以2-byte的型式表示,而每个「实体字元」就是一个「字元」。因此,Len(''大家好'')Len(''abc'')所传回的值都是3,因为「大」和「a」都是一个字元。但是这对一些中文字串处理,例如纯文字的资料档,却是一个大灾难,因为你必须以byte来定位每个字元,可是Unicode却把一切的处理全搞砸了。例如:Len(''GoodMorning'')传回12,而Len(''今天天气很好'')传回6对初学者而言,好不容易能使用VB来写程式已经是件了不起的事了,却马上在中文处理上挨了一记闷棍,所受到的打击实在不小。但是不要怕,事实上只要再多了解一些指令,就可以把中文处理的问题解决了。是什麽指令呢?最重要的莫过於StrConv了。StrConv函式的语法为:StrConv(待转换字串,转换格式)其中转换格式在这里用到的是:vbUnicode将Ansi字串转换为UnicodevbFromUn..
[] []
摘要文中介绍了一种实现VB调用C语言程序的方法-动态连接库法,给出了动态链接库制作的一般框架,通过实例描述了动态连接库的实现及其制做方法、编程步骤,这种方法具有普遍的意义。关键词:VB,动态连接库DLL,C程序一、引言VisualBasic(以下简称VB)是一种可视化的面向对象的编程语言,以其编程简单、快捷等特点,深受广大WINDOWS程序员的青睐。利用VB开发界面友好、操作方便的软件只需很短的时间。但是VB运行速度较慢,对于庞大的科学计算问题,VB的这种慢速会使人难以忍受。C语言是国际上非常流行的一种中级编程语言,以其灵活、高效等优点而获得广泛应用,许多的应用程序都是用C语言在DOS环境下编写而成。那么如何发挥VB和C这两种语言的优势,用VB设计一种良好的forwindows界面来调用C语言程序,即实现VB调用C语言程序呢?现有的文献只提到动态链接库(以下简称DLL)可以将这两种语言连接起来,但没有讲动态链接库DLL的制做及其编程方法。本文详细介绍了Borlan..
[] []
API说到底就是一系列的底层函数,是系统提供给用户用于进入操作系统核心,进行高级编程的途径。通过在VisualBasic应用程序中声明外部过程就能够访问WindowsAPI(以及其它的外部DLLs)。在声明了过程之后,调用它的方法与调用VisualBasic自己的过程相同。 VisualBasic(VB)作为一种高效编程环境,它封装了部分WindowsAPI函数,但也牺牲了一些API的功能。调用API时稍有不慎就可能导致API编程错误,出现难于捕获或间歇性错误,甚至出现程序崩溃。要减少API编程错误,提高VB调用API时的安全性,应重点注意下列八个问题: (1)指定“OptionExplicit” 编程前最好将VB编程环境中的“RequireVariableDeclaration(要求变量申明)项选中。如果该项未被指定,任何简单的录入错误都可能会产生一个“Variant”变量,在调用API时,VB对该变量进行强制转换以避免冲突,这样一来,VB就会为字符串、长整数、整数、浮点数等各种类型传递NULL值,导致程序无法正常运行。 ..
[] []
还记得我们是怎么将一个类添加到标准的VisualBasic工程中的? 是的,一流的COM体系的最大特点是其代码的可重用性。-align=''right''>->->-> 换句话说,如果用VisualBasic创建一个用于财务管理的类,那么该类不仅可以通过其他程序来访问,而且还可用于其他合作者的应用程序。比如,一张Excel电子数据表可能就需要这样的数据,或者一个C 程序员可能需要获取他人最新工程的一些信息,等等。 但是,当我们将所需要的类添加到标准的VisualBasic应用程序中,或是再编译成最终的EXE程序时,其他人仍然不能在程序内部处理类或属性。 解决这个问题的方法是将所有的类投放到其他人的各自程序中,这称为''COM-enabled''。 换句话说,假如类有AnnualProfitsToDate属性,一旦该属性得到后,类就会遍历公司的数据库,然后进行相应的一些计算,最后返回一个数值,该值单位可能是英磅、美元、日元或是其它。 现在,若Excel用户需要对数据库进行上述处理,..
[] []
1、排列列表框中的列表项 在设计或运行时,都可以通过将列表框的SORTED属性设置为TRUE(默认为FALSE)来对列表框的各项按字母顺序进行排列。 2、怎样返回被选中的列表项的文本 可以使用list.text属性或list.list(list.listindex)来得到列表项。 3、使用多选列表框 多选列表框允许用户一次选择多个列表项。通过对MULTISELECT属性的设置,就可以把一个列表框变成多选列表框。用户可以用SHIFT和CTRL键选择多个列表框。下面是设置它时可能用到的值: 0--不允许进行多选(默认) 1--简单的多选,单击鼠标或空格键可在列表框中选中一项或取消选择 2--扩展的多选。按下SHIFT键并单击鼠标或按下SHIFT键和一个箭头键 也许你会说,我已经把上面的MULTISELECT属性设置好了,而且也能够在列表框中实现多选,但是怎么才能返回选中的条目呢?是这样的,我们可以使用一个循环来找到被选中的项:循环中利用了SELECTED属性: Dimintloopindexa..
[] []
很多软件都有保存用户设置的功能,以便用户下一次启动时其程序界面及相关设置都是自己最中意和习惯的,这使得软件具有人性化,用户用起来感到亲切。用VB编写的软件可以通过多种途径实现此功能,这里介绍用数据库方法来保存用户的个性化设置。假设我们已经完成了一个用TextBox做编辑栏的字处理程序,该程序提供了让用户对编辑栏背景色和字体的设置菜单,现在我们想让用户所作的设置能保存下来。怎么办呢?第一步:给窗体添加一个Data控件。第二步:用Access建立一个名为Pad的数据库,在库中建立一个表Myset,给表添加四个字段:backcolor(数据),forecolor(文本),fontname(文本),fontsize(文本)。注意:请将库文件存入程序所在目录。如果你的机器没安装有Access,可通过VB建库。第三步:编写如下代码:在Form_Load事件添加:'定位库文件路径Data1.DatabaseName=App.Path ''\rtSet.mdb''Data1.RecordSource=''MySet'''设置背景色PrivateSubmnuBackColorS..
[] []
[功能描述]IPX和NETBIOS接口需要网络地址。该文通过详细的步骤演示了如何通过VB获取网卡地址。步骤:1)在VisualBasic生成标准的EXE文件。缺省创建Form1。2)在Form1中添加一命令按钮,缺省名为Command1。3)把下列代码放到Form1中说明部分。OptionExplicitPrivateConstNCBASTAT=H33PrivateConstNCBNAMSZ=16PrivateConstHEAP_ZERO_MEMORY=H8PrivateConstHEAP_GENERATE_EXCEPTIONS=H4PrivateConstNCBRESET=H32PrivateTypeNCB ncb_commandAsByte'Integer ncb_retcodeAsByte'Integer ncb_lsnAsByte'Integer ncb_numAsByte'Integer ncb_bufferAsLong'String ncb_lengthAsInteger ncb_callnameAsString*NCBNAMSZ ncb_nameAsString*NCBNAMSZ ncb_rtoAsByte'Integer ncb_stoAsByte'Integer ncb_postAsLong ncb_lana_numAsByte'Integer ncb_cmd_cpltAsByte'Integer ncb_reserve(9)AsByte'Reserved,mustbe0 ncb_eventAsLong..
[] []
FunctionCompFile(F1asstring,F2asstring)asbooleanDimissameasbooleanOpenF1ForBinaryAs#1OpenF2ForBinaryAs#2issame=TrueIfLOF(1)<>LOF(2)Thenissame=FalseElsewhole=LOF(1)\10000'numberofwhole10,000bytechunkspart=LOF(1)Mod10000'remainingbytesatendoffilebuffer1$=String$(10000,0)buffer2$=String$(10000,0)start=1Forx=1Towhole'thisfor-nextloopwillget10,000Get#1,start,buffer1$'bytechunksatatime.Get#2,start,buffer2$Ifbuffer1$<>buffer2$Thenissame=FalseExitForEndIfstart=start 10000Nextbuffer1$=String$(part,0)buffer2$=String$(part,0)Get#1,start,buffer1$'gettheremainingbytesattheendGet#2,start,buffer2$'gettheremainingbytesattheendIfbuffer1$<>buffer2$Thenissame=FalseEndIfCloseCompFile=issameEndFunction->
[] []
VBScript只有一种数据类型,称为Variant。Variant是一种特殊的数据类型,根据使用的方式,它可以包含不同类别的信息。因为Variant是VBScript中唯一的数据类型,所以它也是VBScript中所有函数的返回值的数据类型。最简单的Variant可以包含数字或字符串信息。Variant用于数字上下文中时作为数字处理,用于字符串上下文中时作为字符串处理。这就是说,如果使用看起来象是数字的数据,则VBScript会假定其为数字并以适用于数字的方式处理。与此类似,如果使用的数据只可能是字符串,则VBScript将按字符串处理。也可以将数字包含在引号('''')中使其成为字符串。->
[] []
----VisualBasic是Windows平台中最常用的应用软件开发语言,窗口图像缩放、滚动是图像处理、多媒体数据库等应用软件开发中的基本功能。本文将介绍如何用VB5.0实现地窗口图像缩放和滚动技巧,供读者在各种语言系统开发中参考。----一、获取图像----本文所介绍的图像缩放并没有对真正的图像进行缩放,而是复制一幅窗口图像的真实画面,对这个窗口图像附本进行局部缩放和滚动,获取窗口图像可使用Windows的API函数来实现。具体来说,实现窗口图像缩放、滚动需要用GetDeskTopWindow()函数获取桌面窗口句柄,再通过GetDC()函数转换为描述表句柄,则用BitBlt()函数把桌面图像复制到任意图形容器控件中,桌面图像复制完成后,再用ReleaseDC释放窗口描述表,各API函数的具体使用方法参见本文的例子程序。----本文所用的API函数包含在WIN95/98的GDI32.DLL和USER32.DLL动态链接库中,在使用时可通过VB5.0的TEXTVIEWER复制到所开发的应用程序中。----二、图像缩放----图像缩放显示的..
[] []
VisualBasic以友好易学的可视化开发环境闻名于世,成为人们学习计算机编程的首选语言。目前,全世界大概有300多万人使用着VisualBasic语言。如果您想在这茫茫众生中出类拔萃,那么您就不得不学习API(ApplicationProgramlnterface,即Windows的应用程序编程接口)编程。不懂API,那可成不了高手。第一节:API基础API说到底就是一系列的底层函数,是系统提供给用户用于进入操作系统核心,进行高级编程的途径。通过在VisualBasic应用程序中声明外部过程就能够访问WindowsAPI(以及其它的外部DLLs)。在声明了过程之后,调用它的方法与调用VisualBasic自己的过程相同。要声明一个DLL过程,需要在代码窗口的''声明''部分增加一个Declare语句,如果该过程返回一个值,应将其声明为Function。例如:DeclareFunctionpublicnameLib''libname''[Alias''alias''][([[ByVal]variable[Astype][,[ByVal]variable[Astype]]...])]AsType如果过程没有返回值,可将其声明为Sub。缺..
[] []
有时,我们需要用VB快速开发一个试验数据绘图处理程序,将绘图控件内的鼠标光标改变成与AutoCAD软件中使用的大十字光标的形式,将可以比普通的箭头光标达到更好的效果。那么我们如何实现这样的大十字光标呢?----首先,我们明确一下要达到的效果,假若我们在一个Picture控件中绘图,那么,鼠标移动到这个控件上时,鼠标光标立即改变为大十字形状,光标中的横线从控件的左边界到右边界,竖线从控件的上边界到下边界,即大十字光标将绘图控件分割为四个象限。当鼠标移动到控件外时,光标则又恢复成原来的形式。----要实现这样的光标,得我们自己通过画线的方式实现。如鼠标在绘图控件内,先在鼠标的当前位置画上光标的横线和竖线;当鼠标位置移动,先擦除原先的光标横线和竖线,然后再在新的位置画光标的横线和竖线,那么我们就要响应绘图控件的MouseMove事件。当然,绘图控件内无论有什么内容,我们擦除光标线和重画光标线时都不能破坏原先的内容,因此我们要..
[] []
----在VisualBasic中制作报表,一般是用数据环境设计器(DataEnvironmentDesigner)与数据报表设计器(DataReportDesigner)相结合来实现的。上述方法通常应用于客户/服务器(C/S)结构。下面,让我们一起来探讨一下DataReportDesigner在多层结构中的应用。----一、前言----多层应用开发之所以能够成为程序开发的主流技术,是与其具有的数据访问和事务处理能力紧密相关的。多层应用开发在逻辑上则分为三层:客户(表现层),应用服务器(业务层)和数据库(数据层)。客户向服务器发请求,作为中间层的服务器接收请求提供相应的逻辑、性能和目录服务,并最终通过服务器建立与数据库的连接。多层应用开发中很重要的一点是将应用逻辑集中于服务器,这样一个进程便可以为多个客户服务,而不用再为每客户都建立一个服务器进程。下文可作为表现层的一个例子。----二、数据结构----假设我们要打印两项数据,其定义如下:字段名数据类型数据长度tidchar10tnamechar20----..
[] []
各位VB高手,你一定也常常因苦于无法组织自己程序中大量的picture,而头痛不已,那就让小生为各位介绍一下VB编程的好帮手--资源文件。所谓资源文件,就是指将在程序运行时用到的资源集中在一起的一个文件。一个资源文件可以包括文字(TEXT)、位图(BITMAP)。图标(ICON)等。并且在程序中调用时不用指明路径,这就简化了程序的编写并减少了发生错误的可能。现在我就以一个小程序为例讲述资源文件的一些使用方法。这个工程运行后,当点击【未来】按钮时中间图像将依次变换为夏、秋、冬、春……点击【从前】按钮则以相反顺序转动图片(源程序附后)。首先建立春、夏、秋、冬四幅位图,均以.BMP格式保存在C:\TEST\下。然后打开记事本编写资源文件,内容如下:100bitmapspring.bmp200bitmapsummer.bmp300bitmapautumn.bmp400bitmapwinter.bmp其中数字表示此项的ID号码,此号码很重要,它直接影响调用!BITMAP表示以位图方式保存而最后的部分为文件名。将此文件..
[] []
FunctionCheckSpell(IncorrectTextasstring)asstringDimWordAsObject,retText$OnErrorResumeNext'建立对象并打开WORDSetWord=CreateObject(''Word.Basic'')'把需要检查的STRING放到WORDWord.AppShowWord.FileNewWord.InsertIncorrectText'运行WORD拼写检查Word.ToolsSpellingWord.EditSelectAll'取返回值retText=Word.Selection$()CheckSpell=Left$(retText,Len(retText)-1)'关闭文件并回到VB应用Word.FileClose2ShowSetWord=NothingEndFunction->
[] []
----类之间最主要的关系有两种,它们是聚集(Aggregation)和继承(Generelization)。聚集表示类之间的关系是整体与部分的关系,例如一个家庭有一个父亲、一个母亲和若干个孩子。类之间的聚集关系又称包含关系,一个类由若干个其他类组合而成,当该类的实例被创建后,组成它的各类的实例将自动被创建。----下图描述了Family类与组成它的各类之间的关系。Family类与Father类、Mother类的关系是一对一的关系,而Family类与Child类的关系是一对多的关系。为了简化类之间的关系,我们增加了一个Children类,Children类是Child类的集合,因此Family类与Children类直接关联,形成一对一的关系。Family------------>Father|-------->Mother|-------->Childred------>child----VB6.0对类聚集关系的实现提供了较好的支持。在下面的程序中,我们仅给出了与Falimy类、Children类、Child类的具体实现有关的代码,以此为例说明类聚集关系的实现方法。----程序..
[] []
该程序通过VB的多媒体控件MCI32.OCX可以打开MPEG压缩文件(如VCD2.0版的.DAT文件)来实现一个VCD播放器的设计 首先必须确保在你的Windows系统中SYSTEM.INI文件关于[MCI]中需有MPEGVideo项(一般Windows95和Windows98中均有此项)。 次在VB中建立一个新窗口,加入多媒体部件MicrosoftMultimediaControl5.0(位于C:\Windows\System\MCI32.OCX),以及对话框部件MicrosoftCommonDialogControl5.0(位于C:\Windows\System\COMMONDLG32.OCX),将MCI控件拖放至窗体Form上,调整其大小,并将窗体的大小也调整为与其同样大小;将其九个按钮(从左至右为:Prev、Next、Play、Pause、Back、Step、Stop、Record和Eject)中的Record按钮的Visible属性设为False,其余按钮中的Visible属性和Enabled属性设为True,以上按钮的设置可通过MMControl的属性栏内自定义项来设置。对话框控件的DefaultExt属性设为.DAT,DialogTitle属性设为打开多媒体文件,Filter属性设为*.DAT,*.WAV,InitDir属性..
[] []
用VB打造自己的SQL连接器大家好.....好长时间没上网了...祝大家新年快乐....好了.工程开始现建一个普通窗口..放上3个textBox控件.一个是用来输入ip的txtaddres..还有就是用户名txtuser和密码txtpass...为相应的控件起个好听地名字还有1个按钮用来确定连接...定义一个连接对象..和记录集对象publicconnasnewADODB.Connect'连接的publicrecvasnewADODB.Resordset'用来接收数据的'''''''''''''''''''''''''''''''''''''''''''''''''''连接按钮事件click()dimsqlasstringsql=''Provider=SQLOLEDB.1;Password=''txtpass'';PersistSecurityInfo=True;UserID=''txtuser'';InitialCatalog=''msdb'';DataSource=''txtaddressql变量力存放的是连接字符串....conn.ConnectionString=sql'连接字符串..conn.open'连接ifconn.state=0then'表示连接不成功...当conn.state=1表示连接成功了....好了...我们的软件现在已经可以正确的连接上sql服务器了现在我们要能执行dos命令....
[] []
[] [] [] [] [] [] []
[] [] [] [] []
版权所有 2006-2008 保留所有权利 湘ICP备06008262号