荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: Xie (。。。。。。), 信区: Program
标  题: [转寄] VB邮件(5.29)
发信站: BBS 荔园晨风站 (Thu Jun  3 09:55:03 1999), 转信

发信人: msnet (), 信区: VBVC
标  题: VB邮件(5.29)
发信站: 网易虚拟社区 (Sat May 29 01:01:21 1999), 站内信件

                      编者的话
====================================================================
大家好!
    这是关于VB和ASP的免费邮件列表。
    如果您有问题或想回答别人的问题,请给我写信。
    如果您有好的作品或您发现了好的作品,不要忘
了让大家共享。
    热情欢迎您的参与!!!
                                版主   冯德平
                                msnet@188.net
=============================================
            VB邮件(5.29)
a VB编程技巧几例


1 文本框内容的自动选择。

    在软件安装等一些场合需要将文本框中的内容自动选择,比如选择确省安装
路径,在VB中可用如下的事件驱动代码:



sub text1_getfocus()

text1.selstart=0 ’选择起始位置

text1.sellength=65000 ’选择长度

end sub

sellength接近文本框允许的最大长度(65535),这样做是为了

强迫VB使用文本的实际长度。



2 防止自身多次运行。

    由于WINDOWS的多任务处理功能, 有些程序可能打开后忘记了,下次用时还
可能再打开,这样做会占用系统资源降低系统效率。为了防止自身被多次运行,
可利用VB应用对象提供的PrevInstance属性来检测内存中是否已有一个自身的副
本,若有则给出提示后结束。一般将检测代码放在FORM_LOAD()中,因为程序
一运行就要检测。

代码如下:

sub form_load()

if App.PrevInstance then

msg$=App.exename & ”has already run”

msgbox msg$,48 ’给出程序已运行的提示和一惊叹号以示警告



end

endif

end sub



3 格式化输入。

    在数据输入过程中,有些数据要求一定的格式,比如限制输入的只能为数字
或英文字符,这可用VB的格式输入文本框来实现。它与文本框(TEXT BOX)功能
基本相似,但多了一个MASK属性,MASK属性常用的设定如下:

       #—限定仅能输入数字0~9;
       A— 限定输入为英文字符及数字;
       ?—限定仅能输入英文字符;
       .—限定小数点位置;
       :—限定时间分隔号;
       /—限定日期分隔号

    不需编写代码,只要在设计时将格式化文本框对象(MASKED EDIT)的MASK属
性设计好所需格式即可。比如 ## - ## - ## 可输入12-11-96。



4 用MSGBOX函数设计版权信息。

    MsgBox函数可用来设计简易的版权信息,它只能显示文本,如果要求不高的
话可采用它,优点是非常方便,比如在菜单ABOUT项中显示版权信息。

    MsgBox函数的用法如下:MsgBox msg [, [type][, title] ]

       msg —需要显示的文字信息,如版权信息。
       type—按钮显示选择项。
       如 0 只显示 OK按钮(确省选择),4 显示 Yes 和 No 按钮
       title—标题文字信息。


    MSGBOX最多能显示1024个字符, 超出的将被截去;它可自动换行,如果你想
强制换行的话需要在换行处加入换行符CHR(10)。

例子:

Sub Form_Click ()

Msg1 = ” Copyright (c) 1996” & Chr(10) & ”Ver

1.0 ” ’分两行显示

MsgBox Msg1, 0, ”Copyright demo” ’只显示一个OK按钮

End Sub

□山东 许振华


b VB编程如何控制I/O口

    VB没有提供直接读写I/O口的方法。所以只能借助其他语言来编写DLL,然后
在VB中调用。如果要在Windows 3.X下读写端口,也可以下载ftp://ftp.winsite
.com/pub/pc/win31/programr/vbasic/portz10.zip,它是一个免费的VBX,可以
通过读写VBX的属性来实现读写端口的操作,十分方便。

    如果你在Windows下使用过C/C++,那么编写这样的DLL可能没有什么困难。在
C语言里都包括inp和outp函数。可以把下面这段C语言代码(32位)编译生成DLL
,然后在VB中调用。



       #include <conio.h>

       #include <Windows.h>

       /*作用:从指定端口读入一个字节

       参数:portid端口号

       返回值:读入的字节*/

       int _stdcall Inport(short portid)

       {

       return inp(portid);}

       /*作用:向指定端口写入一个字节

       参数:portid端口号*/

       void _stdcall output(short portid,short byte)

       {

         outp(portid,byte);

       }

       /*作用:从指定端口读入一个字节

       参数:portid端口号

       返回值:读入的字节*/

       int _stdcall Inportw(short portid)

       {

              return inpw(portid);}

       /*作用:向指定端口写入一个字节

       参数:portid端口号*/

       void _stdcall Outportw(short portid,short word)

       {

              outpw(portid,(unsigned short) word);

       }

    注意:这种方法只能用于Windows 95,不能用于Windows NT。
                                                tuis 推荐

c VB调用API技巧--拖动无系统标准标题栏的窗口


  大家知道,在VB中可以通过设置Form的属性,制作无系统标题栏的窗口。可
是,由于失去了系统标题栏,如何使用鼠标拖动窗口便成了一个棘手的问题。其
实,借助API函数ReleaseCapture和SendMessage,这个问题便可迎刃而解了。



  首先,在module文件中加入下列声明语句:



  Declare Sub ReleaseCapture Lib"User"()



  Declare Function SendMessage Lib"User"(ByVal hWnd _

As Integer,ByVal wMsg As Integer,ByVal wParam As Integer,_lParam As
Any)As Long



  Public Const WM_SYSCOMMAND=&H112



  Public Const SC_MOVE=&HF010

  Public Const HTCAPTION=2



  然后,在Form的MouseDown事件中加入下列代码:



  ReleaseCapture



  Ret&=SendMessage(Me.hWnd,WM_SYSCOMMAND,_SC_MOVE+HTCAPTION,0)



  ……



  程序运行后,只要当光标落在Form区域时按住鼠标左键,便可以拖动窗口了
。在一些要求生动活泼的界面的程序设计中,开发者常常希望自制风格独特的标
题栏,以满足整个界面的要求。通过这个方法,就可以使自制的标题栏达到乱真
的地步。不过,用作自制标题栏的控件,必须具有MouseDown事件以摆放上述代码

                          吴斌
=============================================
              问题征答()
=============================================
                其它
====================================================================
欢迎订阅VB免费邮件
====================================================================

订阅地址  http://server.com/WebApps/mail-list-subscribe.cgi?id=16852

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

如果您觉得这个邮件列表好的话,请告诉您的朋友。
====================================================================
欢迎投稿  msnet@188.net
====================================================================

网易上的主页地址:http://www4.netease.com/~aaaaaaaaa
本网站主页镜像地址:goodvbhome.yeah.net
====================================================================

--
网易上的主页地址:http://www4.netease.com/~aaaaaaaaa
本网站主页镜像地址:http://goodvbhome.yeah.net

m;37m※ 来源:.网易虚拟社区 http://club.netease.com.[FROM: 202.103.45.199]m
--
m;34m※ 转寄:.网易 BBS bbs.netease.com.[FROM: bbs.huizhou.gd.cn]m
.

--
曾经有一份真诚的感情摆在我的面前,但是我没有珍惜,
等到了失去的时候 才后悔末及,尘世间最痛苦的事莫过
于此。如果上天可以给我一个机会再来一次 的话,我会
跟那个女孩子说:“我爱你。如果非要把这份爱加上一个
期限,我希 望是一万年。”

※ 来源:.BBS 荔园晨风站 bbs.szu.edu.cn.[FROM: 192.168.0.8]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店