给你的应用程序添加动态鼠标
来源:互联网 发布:学生化妆品知乎 编辑:程序博客网 时间:2024/05/10 07:22
给你的应用程序添加动态鼠标
作者:魏镇江
下载本文示例源代码
本文程序运行效果图
鼠标是一个应用程序与用户交互的主要手段,因此如果在应用程序里能显示一些比较“酷”的鼠标的话,无疑能增加软件的人气值。但是我们一般情况下用VC++都只能调用系统提供的鼠标或生成一些静态的鼠标,怎么才能生成及利用动态鼠标呢?
幸好Visual C++已为我们准备好了一个很好的编辑动态鼠标的工具AniEdit,并且还提供了它的全部原代码。检索一下VC++安装盘的DevStudio/VC/Samples/SDK/SDKTOOLS目录,你就会发现它的。
你可以利用VC++生成一个Win32 Application,然后用Add Files to Project命令将所有原代码加入该项目,编译之后就可得到AniEdit。
当然,要自己制作动态鼠标的话,除了AniEdit之外,还需要另外一个工具ImagEdit。VC++也提供了它的全部原代码。它位于与AniEdit同样的目录下,请与AniEdit同样的方法编译并得到ImagEdit。
对于AniEdit的使用方法简述如下:程序启动后,左边是动态鼠标每帧的画面,右边上端可设置每帧的显示时间,下端是动态鼠标预览。
若你要改动某一帧的画面,先选中它,然后选择菜单Edit|Edit Frame...,于是启动了ImagEdit,对单帧画面进行编辑,改完之后保存退出。
若要增加一帧画面,可选择Edit|New Frame...,注意正确设置热点。
在使用AniEdit之前,你也可以先利用AniEdit打开Windows目录下的Globe.ani文件,大致了解一下是怎么回事?
那么有了动态鼠标文件之后,又怎么在VC++中调用呢?通过以下几行简单的代码就可以轻松利用动态鼠标。
首先在类中增加成员变量m_hAniCursor,然后在构造函数中赋空值,
void CSampleView::CSampleView(){m_hAniCursor = NULL;}再利用LoadCursorFromFile()载入动态鼠标文件:
void CSampleView::OnInitialUpdate(){//推荐在OnInitialUpdate或OnInitialDialog//中载入动态鼠标文件...if(m_hAniCursor == NULL)m_hAniCursor = LoadCursorFromFile("d://path//sample.ani");...}然后在需要改变鼠标的地方调用SetCursor()。推荐截取WM_SETCURSOR消息,然后 修改OnSetCursor()函数。
BOOL CAboutDlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) {// TODO: Add your message handler code here and/or call defaultif(m_hAniCursor!=NULL)SetCursor(m_hAniCursor);/*orif(m_hAniCursor!=NULL)SetClassLong(GetSafeHwnd(), GCL_HCURSOR, (LONG)m_hAniCursor);*/return TRUE;//return CDialog::OnSetCursor(pWnd, nHitTest, message);}再编译程序并运行,你就可以得到一双你梦寐以求的闪动的大眼睛或一只翩翩起舞的蝴蝶,是不是很酷?
- 给你的应用程序添加动态鼠标
- 给你的应用程序添加动态鼠标
- 用log4j给你的Java应用程序添加日志记录
- 给你的电影添加字幕
- 给你的网站添加"分享"
- 给你的组件添加Label
- lipo命令,给你的应用程序瘦身
- lipo命令,给你的应用程序瘦身
- 为网页背景添加一个跟随鼠标的动态变幻线条
- 给你的Websphere 5.1.x 添加Trace
- 给你的Blog添加经典言论引用
- js-给你的博客添加一双眼睛
- 给你的BLOG添加vista发布倒计时
- Cool 给你的Visual Studio 添加音乐
- Cool 给你的Visual Studio 添加音乐
- 给你的程序添加ODBC支持
- 给你的网站添加地图频道
- 给你的网站添加google翻译
- 新手学jsp遇到问题了,各位高手帮忙解决一下
- 夷~怎么链接没有了~~~~(>_<)~~~~
- 单纯形法(1)
- Aas.Net上傳Excel讀取時丟失數據的問題
- IE控制条的实现
- 给你的应用程序添加动态鼠标
- 轻松实现类VC界面
- 如何获得另一个应用程序窗口中的文本
- Ubuntu .deb包安装方法
- 软件设计原则之依赖倒转原则
- Linux设备驱动程序学习(2)-调试技术
- Effective C# 原则21:用委托来表示回调
- 几个免费下载原版图书的网站收藏
- Flex读取外部XML中文乱码解决办法