CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  控件

如何用鼠标拖拽,picture控件???

楼主LowBird(我是大菜鸟)2001-12-21 20:40:35 在 VB / 控件 提问

例如:音量控制 问题点数:20、回复次数:11Top

1 楼sticker(了了)回复于 2001-12-21 20:47:45 得分 0

应该有个控件可以用的,如果不用的话,把一个可以设drag的东西开成ture,然后控制他的left和top值,比如让他的left一直等于一个固定值,然后另一个变量等于他的top值(要必要的处理)  
  这样应该可以用了吧。Top

2 楼LowBird(我是大菜鸟)回复于 2001-12-21 20:56:19 得分 0

我试试Top

3 楼LowBird(我是大菜鸟)回复于 2001-12-21 21:07:09 得分 0

不行Top

4 楼sticker(了了)回复于 2001-12-21 21:12:57 得分 0

你是怎么让他的left值固定的?我不太记得有没有什么事件可以用来驱动了,如果没有的话,花点效率,用个interval很小(100)的记时器好了,在timer事件中加入控制代码。Top

5 楼LowBird(我是大菜鸟)回复于 2001-12-21 21:18:50 得分 0

就是用的timeTop

6 楼sticker(了了)回复于 2001-12-21 21:25:46 得分 5

那有招更累的方法,把这个用来drag的东西的enabled设false,不用他的drag了,换成检测form_mousedown事件,检测mouse是否在东西里面,如果是的话,另一个全局变量=ture,然后,form_mousemove事件中,如果上个全局变量=ture,则东西.top=鼠标的y值。然后,在form_mouseup事件,如果全局变量=ture则全局变量=false.  
  很麻烦,不知行不行。Top

7 楼LowBird(我是大菜鸟)回复于 2001-12-21 21:33:01 得分 0

Private   Sub   picHk_MouseDown(Button   As   Integer,   Shift   As   Integer,   X   As   Single,   Y   As   Single)  
  'picHk.BackColor   =   vbRed  
  'DragPd   =   True  
  End   Sub  
   
  Private   Sub   picHk_MouseMove(Button   As   Integer,   Shift   As   Integer,   X   As   Single,   Y   As   Single)  
  'If   DragPd   =   True   Then  
  '         picHk.Move   (X   -   10),   5520,   200,   200  
  '         picHk.Refresh  
  'End   If  
  End   Sub  
   
  Private   Sub   picHk_MouseUp(Button   As   Integer,   Shift   As   Integer,   X   As   Single,   Y   As   Single)  
  'picHk.BackColor   =   vbGreen  
  'DragPd   =   False  
  End   Sub  
   
  实验代码,不好使!!!Top

8 楼LowBird(我是大菜鸟)回复于 2001-12-21 22:45:57 得分 0

  没有别的方法了吗??Top

9 楼LowBird(我是大菜鸟)回复于 2001-12-22 02:20:58 得分 0

不会吧!!很难吗??Top

10 楼lty(傻猫)回复于 2001-12-22 03:16:30 得分 15

下面的方法实际上vb的开发环境就是这样实现拖动的.  
   
  dim   鼠标键按下   as   boolean  
  dim   OldX   as   single  
  dim   OldY   as   single  
   
  Sh是图片框  
   
  Private   Sub   sh_MouseDown(Button   As   Integer,   Shift   As   Integer,   X   As   Single,   Y   As   Single)  
         
         
         
        Shape1.Visible   =   True  
        鼠标键按下   =   True  
        OldX   =   X  
        OldY   =   Y  
        Shape2.left   =   Sh.left  
        Shape2.top   =   Sh.top  
        Shape2.Width   =   Sh.Width  
        Shape2.Height   =   Sh.Height  
   
  End   Sub  
   
  Private   Sub   sh_MouseMove(Button   As   Integer,   _  
                                                        Shift   As   Integer,   X   As   Single,   Y   As   Single)  
         
        If   鼠标键按下   Then  
              Shape2.left   =   Shape2.left   +   X   -   OldX  
              Shape2.top   =   Shape2.top   +   Y   -   OldY  
              Shape1.Width   =   Shape2.left  
              Shape1.Height   =   Shape2.top  
              OldX   =   X  
              OldY   =   Y  
        End   If  
         
  End   Sub  
   
  Private   Sub   sh_MouseUp(Button   As   Integer,   Shift   As   Integer,   X   As   Single,   Y   As   Single)  
   
        Sh.top   =   Shape2.top  
        Sh.left   =   Shape2.left  
        鼠标键按下   =   False  
        Shape2.Visible   =   False  
   
  End   Sub  
  Top

11 楼LowBird(我是大菜鸟)回复于 2001-12-22 04:01:22 得分 0

好的,谢谢了,可以了Top

相关问题

  • 如何实现在程序中用鼠标拖拽Picture控件
  • 怎样得到PICTURE控件的鼠标坐标?
  • 如何让CEdit控件支持鼠标拖拽文本
  • 用鼠标拖动控件
  • VB运行时如何利用鼠标拖拽方式更改控件大小
  • picture控件~~~~~~~
  • PICTURE控件
  • picture控件
  • picture控件
  • 如何实现鼠标移动控件?

关键词

  • top
  • pichk
  • shape2
  • 鼠标键
  • single
  • dragpd
  • oldx
  • 全局变量
  • oldy
  • subprivate

得分解答快速导航

  • 帖主:LowBird
  • sticker
  • lty

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo