怎样在程序中用动画光标(ANI)

yy23rock 2002-05-04 05:10:28
怎样在程序中用动画光标(ANI)
...全文
145 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
星辰游侠 2002-05-04
  • 打赏
  • 举报
回复
给你的应用程序添加动态鼠标
---- 鼠标是一个应用程序与用户交互的主要手段,因此如果在应用程序里能显示
一些比较“酷”的鼠标(如动态鼠标)的话,无疑能使软件更加友好。
但是我们在一般情况下用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文件,大致了解一下是怎么回事?全部编辑完后生
成后缀为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()。推荐用ClassWizard截取
WM_SETCURSOR消息,然后修改OnSetCursor()函数。

BOOL CAboutDlg::OnSetCursor
(CWnd* pWnd, UINT nHitTest, UINT message)
{
// TODO: Add your message handler
code here and/or call default
if(m_hAniCursor!=NULL)
SetCursor(m_hAniCursor);
/*or if(m_hAniCursor!=NULL)
SetClassLong(GetSafeHwnd(), GCL_HCURSOR,
(LONG)m_hAniCursor);*/
return TRUE;
//return CDialog::OnSetCursor(pWnd, nHitTest, message);
}


16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧