VC语言

本类阅读TOP10

·VC++ 学习笔记(二)
·用Visual C++打造IE浏览器(1)
·每个开发人员现在应该下载的十种必备工具
·教你用VC6做QQ对对碰外挂程序
·Netmsg 局域网聊天程序
·Windows消息大全
·VC++下使用ADO编写数据库程序
·VC++学习笔记(四)
·非法探取密码的原理及其防范
·怎样在VC++中访问、修改注册表

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
关于AnimateWindow的补充说明

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

     前段时间经常在论坛或者文档上面讨论AnimateWindow的使用,或者有说到98下面不能使用的,或者有人说MSDN上面说98下一定能用的,我试了一下,2000下面我尚不能直接使用这个函数,98下面更不能够了。察看了一下User32.dll,那个函数又确确实实的存在,究其原因,就是用为这个函数的Winver定义在大于0x0500,这个问题已经有人在文章中提到了,他使用的是修改函数定义,将Winver降级使用,这种方法因为涉及到修改头文件,麻烦,而且心里面感觉怪怪的,因此就直接将AnimateWindow的使用方法修改成以下所列的:

首先定义常量:

#define AW_HOR_POSITIVE             0x00000001
#define AW_HOR_NEGATIVE             0x00000002
#define AW_VER_POSITIVE             0x00000004
#define AW_VER_NEGATIVE             0x00000008
#define AW_CENTER                   0x00000010
#define AW_HIDE                     0x00010000
#define AW_ACTIVATE                 0x00020000
#define AW_SLIDE                    0x00040000
#define AW_BLEND                    0x00080000

相应的含义我相信MSDN大家都可以查找到的

实现部分如下:

typedef UINT (CALLBACK* LPFNDLLFUNC1)(  HWND hwnd, DWORD dwTime,  DWORD dwFlags);//定义AnimateWindow的函数指针

HINSTANCE h;
LPFNDLLFUNC1 p;
::ShowWindow(hWnd,SW_HIDE);
h = LoadLibrary( "user32.dll" );
p = (LPFNDLLFUNC1) GetProcAddress( h, "AnimateWindow" );
p(hWnd, 500,AW_HOR_POSITIVE|AW_SLIDE);
::ShowWindow(hWnd,SW_SHOW);
FreeLibrary( h );]

这段代码实现了一种从左向右的效果。

另外:

其实有许多函数都可以通过这种方式实现的,而不需要修改头文件定义。




相关文章

相关软件