給你的應用程式新增動態滑鼠 (轉)

worldblog發表於2007-12-06
給你的應用程式新增動態滑鼠 (轉)[@more@] 滑鼠是一個應用與互動的主要手段,因此如果在應用程式裡能顯示一些比較“酷”的滑鼠(如動態滑鼠)的話,無疑能使更加友好。但是我們在一般情況下用VC++都是提供的滑鼠或生成一些靜態滑鼠,而且資料上也很少有提到動態滑鼠的,那麼怎麼才能生成及利用動態滑鼠呢?

---- 幸好Visual C++已為我們準備好了一個很好的編輯動態滑鼠的工具AniEdit,並且還提供了它的全部原始碼。檢索一下VC++盤的DevStudioVCSamplesSDKSDKTOOLS目錄,你就會找到它的。你可以利用VC++生成一個 Application,然後用Add Files to Project命令將所有原始碼加入該專案,編譯之後就可得到AniEdit。不過,要自己製作動態滑鼠的話,除了AniEdit之外,還需要另外一個編輯工具ImagEdit。VC++也提供了它的全部原始碼。它位於與AniEdit同樣的目錄下,請按與AniEdit同樣的方法編譯並得到ImagEdit。

---- 對於AniEdit的使用方法簡述如下:程式啟動後,左邊是動態滑鼠每幀的畫面,右邊上端可設定每幀的顯示時間,下端是動態滑鼠預覽。若你要改動某一幀的畫面,先選中它,然後選擇選單Edit|Edit Frame...,於是啟動了ImagEdit,對單幀畫面進行編輯,改完之後儲存退出。若要增加一幀畫面,可選擇Edit|New Frame...,注意正確設定熱點。在使用AniEdit之前,你也可以先利用AniEdit開啟目錄下的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:pathsample.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) SetClaong(GetSafeHwnd(), GCL_HCURSOR, (LONG)m_hAniCursor);*/ return TRUE; //return CDialog::OnSetCursor(pWnd, nHitTest, message); }


---- 最後編譯程式並執行,你就可以發現一隻美麗的蝴蝶在螢幕上翩翩起舞,是不是很酷?


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-988896/,如需轉載,請註明出處,否則將追究法律責任。

相關文章