我要实现一个像瑞星助手那样的动画窗口(会动的动物的异型窗体)。
思路是在一个窗口上放个GIF动画,然后将背景色透明即可。
GIF动画可以从网上下载到控件。
现在的问题就是怎么让窗口透明。我在网上找到了两种方法:
1.函数SetLayeredWindowAttributes,这个函数的效果就是我想要的,但是这个函数只在Wind2000下有效,连XP都不行,其他系统就更完完。
2.使用CRgn类联合,但是我的GIF动画是不停的变动的,CRgn区域是固定的,如果一直变换,很难控制。请教各位,还有别的方法么?
思路是在一个窗口上放个GIF动画,然后将背景色透明即可。
GIF动画可以从网上下载到控件。
现在的问题就是怎么让窗口透明。我在网上找到了两种方法:
1.函数SetLayeredWindowAttributes,这个函数的效果就是我想要的,但是这个函数只在Wind2000下有效,连XP都不行,其他系统就更完完。
2.使用CRgn类联合,但是我的GIF动画是不停的变动的,CRgn区域是固定的,如果一直变换,很难控制。请教各位,还有别的方法么?
解决方案 »
- 本人想把一个Ctring的参数加密后,传入XML文件中,求加密解密方法!
- CTabCtrl 非ITEM项的消息响应
- 哪位朋友给出几个RSA,的密钥对!~谢谢!
- 怎样调出一个基于Cview类的CDialog
- 请问高手这个如何解密???????
- VC++怎樣與串口通信?是否可提供源代碼
- 请问error LNK2001: unresolved external symbol _va_g729a_init_decoder@0这啥问题啊
- Debug编译成功,Release编译提示以下错误
- 如何使两幅图片融合在一起?
- 我想编一个Tencent Explorer那样外观的东东
- 我设数据库类型为double,返回使用TheValue.dblVal,数据库内为1000,为什么返回为0?
- 用vc怎么样可以ping出固定域名的ip??
SetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE,
GetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE)^0x80000);
HINSTANCE hInst = LoadLibrary("User32.DLL"); //显式加载DLL
if(hInst)
{
typedef BOOL (WINAPI *MYFUNC)(HWND,COLORREF,BYTE,DWORD);
MYFUNC fun = NULL;
fun=(MYFUNC)GetProcAddress(hInst, "SetLayeredWindowAttributes");//取得SetLayeredWindowAttributes函数指针
if(fun)fun(this->GetSafeHwnd(),0,100,2);
FreeLibrary(hInst);
}
//=========================================
由你的窗体的位置来计算它所在位图的区域,用这一部分埴充背景再显示其它的图形
优化:
如果不要求精度的话,可以从启动到结束只使用一幅位图