给你的应用程序添加动态鼠标
給你的應(yīng)用程序添加動(dòng)態(tài)鼠標(biāo)
作者:魏鎮(zhèn)江
下載本文示例源代碼
本文程序運(yùn)行效果圖
鼠標(biāo)是一個(gè)應(yīng)用程序與用戶交互的主要手段,因此如果在應(yīng)用程序里能顯示一些比較“酷”的鼠標(biāo)的話,無疑能增加軟件的人氣值。但是我們一般情況下用VC++都只能調(diào)用系統(tǒng)提供的鼠標(biāo)或生成一些靜態(tài)的鼠標(biāo),怎么才能生成及利用動(dòng)態(tài)鼠標(biāo)呢?
幸好Visual C++已為我們準(zhǔn)備好了一個(gè)很好的編輯動(dòng)態(tài)鼠標(biāo)的工具AniEdit,并且還提供了它的全部原代碼。檢索一下VC++安裝盤的DevStudio/VC/Samples/SDK/SDKTOOLS目錄,你就會(huì)發(fā)現(xiàn)它的。
你可以利用VC++生成一個(gè)Win32 Application,然后用Add Files to Project命令將所有原代碼加入該項(xiàng)目,編譯之后就可得到AniEdit。
當(dāng)然,要自己制作動(dòng)態(tài)鼠標(biāo)的話,除了AniEdit之外,還需要另外一個(gè)工具ImagEdit。VC++也提供了它的全部原代碼。它位于與AniEdit同樣的目錄下,請(qǐng)與AniEdit同樣的方法編譯并得到ImagEdit。
對(duì)于AniEdit的使用方法簡(jiǎn)述如下:程序啟動(dòng)后,左邊是動(dòng)態(tài)鼠標(biāo)每幀的畫面,右邊上端可設(shè)置每幀的顯示時(shí)間,下端是動(dòng)態(tài)鼠標(biāo)預(yù)覽。
若你要改動(dòng)某一幀的畫面,先選中它,然后選擇菜單Edit|Edit Frame...,于是啟動(dòng)了ImagEdit,對(duì)單幀畫面進(jìn)行編輯,改完之后保存退出。
若要增加一幀畫面,可選擇Edit|New Frame...,注意正確設(shè)置熱點(diǎn)。
在使用AniEdit之前,你也可以先利用AniEdit打開Windows目錄下的Globe.ani文件,大致了解一下是怎么回事?
那么有了動(dòng)態(tài)鼠標(biāo)文件之后,又怎么在VC++中調(diào)用呢?通過以下幾行簡(jiǎn)單的代碼就可以輕松利用動(dòng)態(tài)鼠標(biāo)。
首先在類中增加成員變量m_hAniCursor,然后在構(gòu)造函數(shù)中賦空值, void CSampleView::CSampleView() { m_hAniCursor = NULL; } 再利用LoadCursorFromFile()載入動(dòng)態(tài)鼠標(biāo)文件: void CSampleView::OnInitialUpdate() {//推薦在OnInitialUpdate或OnInitialDialog //中載入動(dòng)態(tài)鼠標(biāo)文件 ... if(m_hAniCursor == NULL) m_hAniCursor = LoadCursorFromFile("d://path//sample.ani"); ... } 然后在需要改變鼠標(biāo)的地方調(diào)用SetCursor()。推薦截取WM_SETCURSOR消息,然后修改OnSetCursor()函數(shù)。 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); } 再編譯程序并運(yùn)行,你就可以得到一雙你夢(mèng)寐以求的閃動(dòng)的大眼睛或一只翩翩起舞的蝴蝶,是不是很酷?
總結(jié)
以上是生活随笔為你收集整理的给你的应用程序添加动态鼠标的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 斧劈互联网(一):企业邮箱那点事儿
- 下一篇: [渝粤教育] 广东-国家-开放大学 21