動畫視窗擴充套件的實現

2021-04-13 12:18:10 字數 1482 閱讀 8099

程式設計原理 

要實現這種動畫視窗的程式設計效果,主要用到windows api中的animatewindow函式,通過在視窗的建立或消毀過程中運用該函式,來實現開啟和關閉程式時達到所希望的動畫視窗效果。animatewindow函式所提供的動畫效果十分豐富,我們可以在自己的程式中選擇各種不同的動畫效果,增強程式的趣味性。為使讀者對animatewindow函式有乙個基本了解,我們先對該函式做乙個簡單介紹: 

函式原型:bool animatewindow(hwnd hwnd,dword dwtime,dword dwflags)。 

函式功能:該函式能在顯示與隱藏視窗時產生兩種特殊型別的動畫效果:滾動動畫和滑動動畫。 

引數含義: 

hwnd:指定產生動畫的視窗的控制代碼。 

dwtime:指明動畫持續的時間(以微秒計),完成乙個動畫的標準時間為200微秒。 

dwfags:指定動畫型別。這個引數可以是乙個或多個下列標誌的組合。標誌描述: 

aw_slide:使用滑動型別。預設則為滾動動畫型別。當使用aw_center標誌時,這個標誌就被忽略。 

aw_activate:啟用視窗。在使用了aw_hide標誌後不能使用這個標誌。 

aw_blend:實現淡出效果。只有當hwnd為頂層視窗的時候才可以使用此標誌。 

aw_hide:隱藏視窗,預設則顯示視窗。 

aw_center:若使用了aw_hide標誌,則使視窗向內重疊,即收縮視窗;若未使用aw_hide標誌,則使視窗向外擴充套件,即展開視窗。 

aw_hor_positive:自左向右顯示視窗。該標誌可以在滾動動畫和滑動動畫中使用。當使用aw_center標誌時,該標誌將被忽略。 

aw_ver_positive:自頂向下顯示視窗。該標誌可以在滾動動畫和滑動動畫中使用。當使用aw_center標誌時,該標誌將被忽略。 

aw_ver_negative:自下向上顯示視窗。該標誌可以在滾動動畫和滑動動畫中使用。當使用aw_center標誌時,該標誌將被忽略。

返回值:如果函式成功,返回值為非零;如果函式失敗,返回值為零。在下列情況下函式將失敗: 

視窗使用了視窗邊界;視窗已經可見仍要顯示視窗;視窗已經隱藏仍要隱藏視窗。 

如果是文件模式

在cmainframe::oncreate函式中增加黑體加粗部分語句。 

int cmainframe::oncreate(lpcreatestruct lpcreatestruct)

相應的,在對話方塊的ioninitdialog中加入同樣語句

使用mfc classwizard增加訊息處理函式 

使用classwizard在cmainframe類中增加wm_close訊息處理函式,並增加以下語句。 

void cmainframe::onclose() 

對話方塊中也一樣

VC動畫視窗的實現

函式功能 該函式 能在顯示與隱藏視窗時能產生特殊的效果。有兩種型別的動畫效果 滾動動畫和滑動動畫。函式原型 bool animatewindow hwnd hwnd,dword dwtime,dword dwflags 引數 hwnd 指定產生動畫的視窗的控制代碼。dwtime 指明動畫持續的時間 ...

實現動畫顯示和關閉視窗

win32 api函式 animatewindow 可以實現在顯示或者關閉窗體的時候產生動畫效果 語法 functionanimatewindow hwnd hwnd dwtime dword dwflags dword bool stdcall 引數 hwnd 想要顯示動畫窗體的控制代碼 dwti...

swift擴充套件UIView實現動畫依次執行

mvc框架下,如果model有連續變化,通過delegate傳遞給view是可能出現不一致的,因為動畫的執行過程不再主線程中完成,所以實際上他是不依次執行,2個動畫疊加的結果可能造成m和v的不一致,為了解決這個問題就要對動畫進行排隊。這是我在這個過程中找到的資料 首先感謝他們對我的幫助。我的設想解決...