| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2222 人关注过本帖
标题:[求助]请那位将悬浮窗体的改进一下
只看楼主 加入收藏
jrs123
Rank: 2
等 级:论坛游民
威 望:1
帖 子:627
专家分:14
注 册:2006-9-5
结帖率:94.12%
收藏
 问题点数:0 回复次数:11 
[求助]请那位将悬浮窗体的改进一下

下面是一个悬浮窗体的代码,希望改进一下:

1,启动后该窗体是停在中间,改为启动后直接靠边.

2,将靠向右边的悬浮窗体改为靠向左边(即改个方向放置悬浮窗体).

3,将鼠标靠近窗体,移动速度太快,不够平滑.

Option Explicit
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long
Private Declare Function GetParent Lib "user32" (ByVal hwnd As Long) As Long
Private Type POINTAPI
x As Long
y As Long
End Type

Private Sub command1_click()
Dim i As Long
For i = Left To Screen.Width - 100 Step 10
Left = i
DoEvents
Next
Timer1 = True
End Sub

Private Sub Timer1_Timer()
Dim i As Long
Dim iPos As POINTAPI
GetCursorPos iPos
i = WindowFromPoint(iPos.x, iPos.y)
If i = hwnd Then
Move Screen.Width - Width, Top
ElseIf GetParent(i) = hwnd Or GetParent(GetParent(i)) = hwnd Then Move Screen.Width - Width, Top: Exit Sub
Else: Move Screen.Width - 100, Top
End If
End Sub

4Glli6GN.rar (1.15 KB) [求助]请那位将悬浮窗体的改进一下


搜索更多相关主题的帖子: 窗体 悬浮 改进 
2006-11-07 07:27
学习VB才2天
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:1653
专家分:0
注 册:2006-5-4
收藏
得分:0 

1,启动后该窗体是停在中间,改为启动后直接靠边.
在FORM_LOAD中定义FORM的TOP.LEFT值..

2,将靠向右边的悬浮窗体改为靠向左边(即改个方向放置悬浮窗体).

在坐标靠右的时候改一下就可以了...

3,将鼠标靠近窗体,移动速度太快,不够平滑.
...这个 控制面板----设置鼠标属性中设成精准模式....


[GLOW=255,DeepPink,3]我的免费网盘[/GLOW]
2006-11-07 08:21
jrs123
Rank: 2
等 级:论坛游民
威 望:1
帖 子:627
专家分:14
注 册:2006-9-5
收藏
得分:0 
谢谢天才版主,
偶对第2个问题按你的办法验证了一下,还不行,提示编译错误,偶将left改为reght,代码如下:
Private Sub Command1_Click()
Dim i As Long
For i = irght To Screen.Width - 100 Step 10 '将left改为irght
irght = i '将left改为irght
DoEvents
Next
Timer1 = True
End Sub
第3个问题,进入控制面版,鼠标的"精确模式"找不到,但各种设置也都试过,也不起作用.
第1个问题还没有试.
源代码不到1K,如果方便的话请天才版主直接在上面改.效果更好.
2006-11-07 09:44
jrs123
Rank: 2
等 级:论坛游民
威 望:1
帖 子:627
专家分:14
注 册:2006-9-5
收藏
得分:0 

Private Sub command1_click()
Dim i As Long
For i = Left To Screen.Width - 100 Step 10
Left = i
DoEvents
Next
Timer1 = True
End Sub
第1,2个问题已解决,只要将上面的代码改为下面的代码即可.但第3个问题是不太好解决.
Private Sub Form_Load()
Move 0, Top
End Sub

对了,Timer的属性Enabled还要改为True

[此贴子已经被作者于2006-11-7 13:07:03编辑过]

2006-11-07 13:04
wyfandy
Rank: 1
来 自:深圳
等 级:新手上路
帖 子:376
专家分:0
注 册:2006-12-11
收藏
得分:0 

3,将鼠标靠近窗体,移动速度太快,不够平滑
Private Sub Timer1_Timer()
Dim i As Long
Dim iPos As POINTAPI
GetCursorPos iPos
i = WindowFromPoint(iPos.x, iPos.y)
If i = hwnd Then
Move Screen.Width - Width, Top
ElseIf GetParent(i) = hwnd Or GetParent(GetParent(i)) = hwnd Then Move Screen.Width - Width, Top: Exit Sub
Else: Move Screen.Width - 100, Top
End If
End Sub
将上面的代码改为下面的代码看看这个是不是你所要的效果.
Private Sub Timer1_Timer()
Dim i As Long
Dim j As Long
Dim iPos As POINTAPI
GetCursorPos iPos
i = WindowFromPoint(iPos.x, iPos.y)
If i = hwnd Then
For j = Screen.Width To Screen.Width - Width Step -10
Move j, Top
Next
Exit Sub
ElseIf GetParent(i) = hwnd Or GetParent(GetParent(i)) = hwnd Then Move Screen.Width - Width, Top: Exit Sub
Else
For j = Left To Screen.Width - 100 Step 10
Move j, Top
Next
End If
End Sub


不论什么事,只要认准了一个目标,然后朝之不懈地努力,就一定实现。编程爱好者QQ群:21318556
2006-12-11 18:18
jrs123
Rank: 2
等 级:论坛游民
威 望:1
帖 子:627
专家分:14
注 册:2006-9-5
收藏
得分:0 

楼上的代码还不行,运行后窗体跑到右边,且不断的跳动!

2006-12-11 19:39
wyfandy
Rank: 1
来 自:深圳
等 级:新手上路
帖 子:376
专家分:0
注 册:2006-12-11
收藏
得分:0 
抱歉,我以为只改第三个问题没想到连在一起,并写错了一个东西.
朋友第三个问题你再把Timer1_time事件的代码改为如下看看:
Private Sub Timer1_Timer()
Dim i As Long
Dim j As Long
Dim iPos As POINTAPI
GetCursorPos iPos
i = WindowFromPoint(iPos.x, iPos.y)
If i = hwnd Then
For j = Left To 0 Step 10
Move j, Top
Next
Exit Sub
ElseIf Left = 0 Then
For j = Left To Left - Width + 100 Step -10
Move j, Top
Next
End If
End Sub

[此贴子已经被作者于2006-12-14 17:11:07编辑过]


不论什么事,只要认准了一个目标,然后朝之不懈地努力,就一定实现。编程爱好者QQ群:21318556
2006-12-14 16:14
jrs123
Rank: 2
等 级:论坛游民
威 望:1
帖 子:627
专家分:14
注 册:2006-9-5
收藏
得分:0 

楼上的代码还不行,发上源代码,请在上面改,改后请再发上来:

OWBa2cWH.rar (1.02 KB) [求助]请那位将悬浮窗体的改进一下


2006-12-14 21:28
wyfandy
Rank: 1
来 自:深圳
等 级:新手上路
帖 子:376
专家分:0
注 册:2006-12-11
收藏
得分:0 

不会吧,你看看你的要求是不是这样的,如果还不是请你说详细一点.


OTbIB7uZ.rar (1.05 KB)

[此贴子已经被作者于2006-12-14 22:55:11编辑过]


不论什么事,只要认准了一个目标,然后朝之不懈地努力,就一定实现。编程爱好者QQ群:21318556
2006-12-14 22:45
redice
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:902
专家分:0
注 册:2006-12-11
收藏
得分:0 
看看我改的这个 出现,消失都很平缓的
aauDCJNp.rar (4.64 KB) [求助]请那位将悬浮窗体的改进一下




鲲鹏数据 - 专业Web数据采集服务提供者
http://www.
2007-04-22 17:29
快速回复:[求助]请那位将悬浮窗体的改进一下
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020894 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved