我原先做过,就是处理 OnMouseMove 和 OnMouseOver 等事件, 在事件中改变控件的属性,不过VB的 command 好象不行,  用图片框或别的按扭ActiveX吧。 

解决方案 »

  1.   

    程序中设定command的style属性,然后在改变前景色。
      

  2.   

    VB做这么点东西是小CASE。我来教两招吧。
    (1)用VB制作即时动态按钮 首先,在主窗体上生成两个大小一样的按钮Command1和Command2,将它们的Style属性都设成1-Graphical,将Command1的Picture属性设为d:\vb\ico\mail01a.ico(变化前的图案,一个关闭的信封),将Command2的Picture属性设为d:\vb\ico\mail101b.ico(变化后的图案,一个打开的信封)。
    其次,在主窗体的Private Sub Form-load()中加入以下代码:
    Form1.Command1.Top=Form1.Height-7000
    Form1.Command1.Left=Form1.Width-1300
    Form1.Command2.Top=Form1.Height-7000
    Form1.Command2.Left=Form1.Width-1300′使这两个按钮重合并放置在窗体的右上角
    Form1.Command1.Visible=TrueForm1.Command2.Visible=False
    ′隐藏Command2按钮,显示Command1按钮
    再次,在Command1-MouseMove事件里加入以下代码:
    If Form1.Command1.Visible=True Then
    Form1.Command1.Visible=False
    Form1.Command2.Visible=True
    End If
    ′如果鼠标移到按钮上就显示打开信封的图案
    最后,在Form-MouseMove事件里加入如下代码:(如果按钮放置在图件框上,就在Picture1-MouseMove事件里加入代码)
    If Form1.Command1.Visible=False Then
    Form1.Command2.Visible=False
    Form1.Command1.Visible=True
    End If
    ′如果鼠标移到按钮外就显示关闭信封的图案
    经过以上几步后,你的窗体上就有了一个即时的动态按钮,这个按钮的Click事件为Command2-Click。本程序在P100、32M RAM、中文版WIN95上运行通过。 
    (2)用VB实现浮动按钮
    在微软的很多软件(如WORD)的工具栏中,都采用一种浮动按钮,即正常情况下按钮的图标呈灰色,当鼠标移动到某一按钮上时,该按钮自动向上凸起且变为彩色,并在按钮的右下方有一标签提示该按钮的功能,鼠标移开后又自动还原,这种按钮用VB实现时,方法如下:1.先用绘图工具作出按钮图标后存盘(如1.BMP),再用图像处理软件将该图标转换为灰度图或浮雕图后再存盘(如2.BMP)。2.运行VB,建立一新窗体(如FORM1)。3.在窗体上需要建立按钮的位置处建立一图片框(如IMAGE1),其大小和图标相同,并将其 PICTURE属性设为2.BMP。4.在IMAGE1周围建立由四个长度相同的LINE控件(如LINE1~4)组成的方框,方框要比IMAGE1控件稍大,否则达不到预计效果,将上面和左边的颜色设成白色,下面和右边的设成黑色,并将四个LINE控件的VISIBLE属性都设成FALSE。5.在程序中加入以下内容即可:Private Sub Image1_MouseMove(Button As Integer,Shift As Integer,X As Single,Y As Single)Image1Picture=LoadPicture(″c:\1bmp″)Line1Visible=TrueLine2Visible=TrueLine3Visible=TrueLine4Visible=TrueEnd SubPrivate Sub Form1_MouseMove(Button As Integer,Shift As I nteger,X As Single,Y As Single)Image1Picture=LoadPicture(″c:\2bmp″)Line1Visible=FalseLine2Visible=FalseLine3Visible=FalseLine4Visible=FalseEnd Sub
           E-boy
    欢迎访问我的VB主页    http://lovevb.2699.com
           _______\   (((   /_______ 
       _____\____ \   | ,\  / ____/_____ 
      ____\______ \_\  | __\ /_/ ______/____ 
     ___\_______ \__\\___| |___//__/ _______/___ 
      \_______ \__ \ \v v v v/ / __/ _______/ 
        \____\___\_\_\v v v/_/_/___/____/ 
            / / \v v/ \ \ 
            |__/ /\v/\ \__| 
             |__/ /|\ \__| 
              |_/\_/\_| 
           
      

  3.   

    需要用到:SetCapture 
    ReleaseCaptureAPI
      

  4.   

    在Command的MouseMove()事件里写入相应处理代码就可以了,DearDelphi写的是Delphi的 OnMouseMove 和 OnMouseOver,不要误人子弟啊,谁说VB的不行啊,呵呵:)!
      

  5.   

    需要使用SetCapture和ReleaseCapture捕捉鼠标才行。