分类: C/C++
2008-08-04 09:29:41
当然,要自己制作动态鼠标的话,除了AniEdit之外,还需要另外一个工具ImagEdit。VC 也提供了它的全部原代码。它位于与AniEdit同样的目录下,请与AniEdit同样的方法编译并得到ImagEdit。
对于AniEdit的使用方法简述如下:程序启动后,左边是动态鼠标每帧的画面,右边上端可设置每帧的显示时间,下端是动态鼠标预览。
若你要改动某一帧的画面,先选中它,然后选择菜单Edit|Edit Frame...,于是启动了ImagEdit,对单帧画面进行编辑,改完之后保存退出。
若要增加一帧画面,可选择Edit|New Frame...,注意正确设置热点。
在使用AniEdit之前,你也可以先利用AniEdit打开Windows目录下的Globe.ani文件,大致了解一下是怎么回事?
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 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); }再编译程序并运行,你就可以得到一双你梦寐以求的闪动的大眼睛或一只翩翩起舞的蝴蝶,是不是很酷? 下载本文示例代码