vb屏幕上的窗体

[复制链接]
查看11 | 回复5 | 2009-1-19 20:59:49 | 显示全部楼层 |阅读模式
如何使得vb来控制屏幕上的窗体大小(不是vb自己的窗体大小,而是其他程序),比如IBM 的via vioce运行时他的窗口就在屏幕上方或下方,这时其他的程序窗体只能在别的位置出现,就算最大化也不会与via vioce 的窗口发生重叠,好像桌面大小被改变了一样,好像via vioce的窗口就像开始菜单的这一行任务栏一样,别的窗口最大化也不会与这一行任务栏重合,而只是与其相靠,这样的效果要如何实现呢?
谢谢各位!
对了,还有一个小问题,就是有没有一个屏幕上鼠标移动的事件,我说的是整个屏幕上移动,不知是vb上的窗口,拜托了!

回复

使用道具 举报

千问 | 2009-1-19 20:59:49 | 显示全部楼层
鼠标移动有呀~如果是某个控件上MouseMove 事件可用MouseIcon属性实现,若要在程序运行中改变鼠标形状用API函数:LoadCursor函数实现 mouse_event Private Declare Sub mouse_event Lib "user32" ( ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long ) Private Declare Sub mouse_event Lib "user32" ( ByVal dwFlags As Long, B...
回复

使用道具 举报

千问 | 2009-1-19 20:59:49 | 显示全部楼层
前一个没看明白,补充问题我来回答吧用个timer,时间间隔自己设吧,小点没关系.Option ExplicitPrivate Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As LongPrivate Type POINTAPIX As Long...
回复

使用道具 举报

千问 | 2009-1-19 20:59:49 | 显示全部楼层
你说的第一个问题,要通过拦截WM_GETMINMAXINFO消息来实现,任何窗口的大小,位置发生变化时,WM_GETMINMAXINFO消息都会被拦截下来,计算处理后再发出,实现要求的功能.相关参数:typedef struct tagMINMAXINFO {// mmi
POINT ptReserved;
...
回复

使用道具 举报

千问 | 2009-1-19 20:59:49 | 显示全部楼层
得到窗口句柄,发消息,变其坐标...
回复

使用道具 举报

千问 | 2009-1-19 20:59:49 | 显示全部楼层
学习学习...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行