当前位置: 代码迷 >> VB Dotnet >> VB.NET API 函数AnimateWindow的使用 疑点
  详细解决方案

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

热度:637   发布时间:2016-04-25 02:09:14.0
VB.NET API 函数AnimateWindow的使用 疑问
首先函数我声明好了
  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 本来是给主题调用的,你直接调用就会起冲突。
  相关解决方案