VB.NET API 函数AnimateWindow的使用 疑问

章鱼小哥0826 2014-11-11 11:47:30
首先函数我声明好了
  Declare Sub AnimateWindow Lib "user32" Alias "AnimateWindow" (ByVal hwnd As IntPtr, ByVal dwTime As Int32, ByVal dwFlags As Int32)

其次参数中用到的变量我也在模块中定义好了:
Module Module1
Public Const AW_HOR_POSITIVE As Int32 = &H1
'//从左到右显示
Public Const AW_HOR_NEGATIVE As Int32 = &H2
'//从右到左显示
Public Const AW_VER_POSITIVE As Int32 = &H4
'//从上到下显示
Public Const AW_VER_NEGATIVE As Int32 = &H8
'//从下到上显示
Public Const AW_CENTER As Int32 = &H10
'//若使用了AW_HIDE标志,则使窗口向内重叠,即收缩窗口;否则使窗口向外扩展,即展开窗口
Public Const AW_HIDE As Int32 = &H10000
'//隐藏窗口,缺省则显示窗口
Public Const AW_ACTIVATE As Int32 = &H20000
'//激活窗口。在使用了AW_HIDE标志后不能使用这个标志
Public Const AW_SLIDE As Int32 = &H40000
'//使用滑动类型。缺省则为滚动动画类型。当使用AW_CENTER标志时,这个标志就被忽略
Public Const AW_BLEND As Int32 = &H80000
'//透明度从高到低
End Module

最后我也在代码中实现了显示和隐藏:
显示:
     AnimateWindow(Form_Info.Handle, 1000, AW_SLIDE Or AW_VER_NEGATIVE)

隐藏:
  AnimateWindow(Form_Info.Handle, 1000, AW_HIDE Or AW_VER_POSITIVE)

那么现在问题来了。主要有两个问题:
第一:我的消息窗口(Form_Info)中有一个Button控件,但是当我调用函数显示后,控件不见了(其他控件也都试了)
定义的Form_info

运行后:


第二个问题:在窗体显示的时候(我定义的是从下到上滑动),窗体的标题栏是先显示出来了,滑动效果实在窗体中显示,具体上个图吧,大家看看:
就是不是我想象的那样,标题栏和窗体从下到上滑出。
还希望大神们多多帮忙!期待赐教!

...全文
286 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
章鱼小哥0826 2014-11-12
  • 打赏
  • 举报
回复
我自己也总结了下,大致实现了功能,具体可以打开链接http://blog.csdn.net/zhangyubishoulin/article/details/41012983。也算是帮助后来人吧
章鱼小哥0826 2014-11-12
  • 打赏
  • 举报
回复
引用 6 楼 Tiger_Zhao 的回复:
.Net 的窗体是彻底支持系统的主题样式的,AnimateWindow 这种更低层的 API 本来是给主题调用的,你直接调用就会起冲突。
不直接调用怎么用?现在用到API函数的地方不是很多吗。还是有很多功能.NET无法直接实现的
Tiger_Zhao 2014-11-12
  • 打赏
  • 举报
回复
.Net 的窗体是彻底支持系统的主题样式的,AnimateWindow 这种更低层的 API 本来是给主题调用的,你直接调用就会起冲突。
三断笛 2014-11-12
  • 打赏
  • 举报
回复
第一个,调用完以后刷新一下窗口或控件。可以用refresh方法或UpdateWindow API 第二个同楼上
章鱼小哥0826 2014-11-12
  • 打赏
  • 举报
回复
哎,算了吧,看来学习VB.NET 的人是真的不多啊。
章鱼小哥0826 2014-11-11
  • 打赏
  • 举报
回复
引用 1 楼 wy24789 的回复:
不如你换vb6试试
你在VB6中测试过了吗。不会出现我上面的问题吗?
wy24789 2014-11-11
  • 打赏
  • 举报
回复
不如你换vb6试试
章鱼小哥0826 2014-11-11
  • 打赏
  • 举报
回复
第一个问题:在Form_Info窗体的类中控制显示或隐藏就不会出现控件显示不完全的情况.之前是在主窗体中控制的 第二个问题:Form_Info.FormBorderStyle = Windows.Forms.FormBorderStyle.None,设置成无标题格式就还可以。

16,718

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧