日期:2012-07-10  浏览次数:20527 次

  
作者:hejianzhong  

我来谈一个自已不太懂的东西实在是不明智的,实在是没有人来谈,一个人默默的钻研总是很难有所成就的。在网上打入一个VB6的命题,会找到无数的解决方案。.VB7外国已经出了好几本很好的书,在国内总有些人不屑这个beta版。这篇拙作也只算一个”Beta”,”bug”肯定不少,看了别生气,且作铺路石,且作铺路石。

一.VB7中调用不共享的方法,函数:

这个问题我在论坛发了好几天帖子,没人愿意回答。只好求助一些英文的例程。

有了结果,这个实在是很简单。对于VB7也相当重要。因为在VB7中包括了几乎

所有API,甚至于更强大的功能。有一些是可以很简单的调用,如:

1,  设置窗体的透明:Form1.Opacity = 0.89(可以设置为0.xx,Opacity的意思是不透明程度)

2,  展开Region " Windows Form Designer generated code "前面的+号你可以看到:

          Me.Text = "Form1" ‘设置窗体的标题(VB7中以text代替caption)

Me.newform2.Location = New System.Drawing.Point (6, 14) ‘

设置窗体的位置坐标。

Me.BorderStyle = System.WinForms.FormBorderStyle.None

设置窗体的外观状态

            Me.BackgroundImage = CType(resources.GetObject("$this.BackgroundImage"), System.Drawing.Image)。设置背景图片

Me.ShowInTaskbar = False

设置是否出现在任务栏

Me.ClientSize = New System.Drawing.Size(536, 408)

设置窗体尺寸。

VB不提倡直接一修改Region " Windows Form Designer generated code ",

你应该在属性框调节它们,但是利用这个原理,我们可以在LOAD事件中加入一些

代码。

例如:dim fhwnd1=integer:( “:”是分行的作用) dim f1 as system.winforms.form

     然后定义f1的形状,

      取得句柄,fhwnd1=f1.handle

      同理取得名柄fhwnd2

      拼合两个窗体,很容易一生成不规则窗体

      当然winforms类的方法绝对不止这些,这只是最简单的了。

3:获取一个图片的信息:form1.BackgroundImage.Width(图片的宽度)

form1.BackgroundImage.Height(图片的高度)

4.操作一个文件:Dim filesam as System.IO.File = new System.IO.File ("sam.txt")

filesam.Delete,删除文件

             filesam.Copy()

             filesam.CopyTo()

             filesam.Create()

             filesam.CreateText()

等等。这些只要看一下大概就知道是什么作用了,不再需要input,output了

所以我建议不要使用namespace(族名,或译为名称空间,这里的空间实际上是一个类的组合。所以我称为族名),这样打入一个族名,打点,他的子类就会以提示方式列出。

在C#中使用using namespace VB中使用Imports namespace作用是一样的。

现在的问题是有一些很重要的方法不会出现在子类的提示列表中(查一下class members)。这表示他是不共享的。

首先你应该在工程中调用他,而不要在模块中,要建立一个函数过程。要声明一个新的对象,而不要直接地使用,如:

Public Function GetPixel(ByVal x As Integer, ByVal y As Integer) As system.Drawing.Color

            Dim BM As System.Drawing.Bitmap ,声明一个对象

            bm = form1.BackgroundImage(BackgroundImage等同于vb6中的picture)

GETPIXEL = BM.GetPixel(X, Y)

注意这里没有使用return关键字返回值,是基于例程的用法。

End Function

(有没有发现vb7的基本语法变化并不是很大,不象人们传说的可怕)

(WindowsMe因为改变太小而被人骂,VB7又因为改变太大被人骂,实在令人感慨)

然后: Private Sub Form_Load()

            

            Call SetRgn                                 

            Dim STRTEMP As String

            Dim pixcolor As System.Drawing.Color

            pixcolor = GetPixel(1, 1)

      &n