首先函数我声明好了:
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
运行后:
第二个问题:在窗体显示的时候(我定义的是从下到上滑动),窗体的标题栏是先显示出来了,滑动效果实在窗体中显示,具体上个图吧,大家看看:
就是不是我想象的那样,标题栏和窗体从下到上滑出。
还希望大神们多多帮忙!期待赐教!
------解决思路----------------------
不如你换vb6试试
------解决思路----------------------
第一个,调用完以后刷新一下窗口或控件。可以用refresh方法或UpdateWindow API
第二个同楼上
------解决思路----------------------
.Net 的窗体是彻底支持系统的主题样式的,AnimateWindow 这种更低层的 API 本来是给主题调用的,你直接调用就会起冲突。