API實現視窗透明 滑動 淡入淡出等動畫效果

2021-05-23 19:55:26 字數 2153 閱讀 8551

api實現視窗透明、滑動、淡入淡出等動畫效果

aw_hor_positive (0x00000001) '從左到右開啟視窗

aw_hor_negative (0x00000002 ) '從右到左開啟視窗

aw_ver_positive (0x00000004) '從上到下開啟視窗

aw_ver_negative (0x00000008) '從下到上開啟視窗

aw_center    (0x00000010) '若使用了aw_hide標誌,則使視窗向內重疊;若未使用aw_hide標誌,則使視窗向外擴充套件。但我的感覺是後者的效果不明顯

aw_hide     (0x00010000) '在窗體解除安裝時若想使用本函式就得加上此常量

aw_activate   (0x00020000) '在窗體通過本函式開啟後,預設情況下會失去焦點,除非加上本常量

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

aw_blend     (0x00080000) '淡入淡出效果

至於各個引數在使用時還有什麼限制,比如使用哪個標誌時,哪乙個標誌會被忽略,請大家認真查查api手冊。

那麼好,現在我們先來試試最簡單的淡出效果。

$hwnd = guicreate("animate window", 300, 300)

dllcall("user32.dll", "int", "animatewindow", "hwnd", $hwnd, "int", 1000, "long", 0x00080000)

guisetstate()

動畫的顯示時間引數,我設為1000,也就是1秒,這是為了看得清楚些,大家可以根據實際需要更改。

大家可以先執行看看,如何,效果不錯吧。

剛才舉的例子只是在dwfags標誌中用了乙個單獨的引數,可別忘記了,api手冊中還說了很重要的一點:這個引數可以是乙個或多個下列標誌的組合。

好,舉個例子~

$hwnd = guicreate("animate window", 300, 300)

dllcall("user32.dll", "int", "animatewindow", "hwnd", $hwnd, "int", 1000, "long", 0x00040004)

guisetstate()

出現的是從上到下滑動開啟視窗,為什麼呢,因為0x00040004=0x00000004+0x00040000,也就是相當於aw_ver_positive與aw_slide的組合。

再給大家來乙個是三個標誌組合的例子:

$hwnd = guicreate("animate window", 300, 300)

dllcall("user32.dll", "int", "animatewindow", "hwnd", $hwnd, "int", 1000, "long", 0x00040006)

guisetstate()

嘿嘿,這次的效果就比較神奇了,乃是介面從左上角出現,滑動至左下角,因為0x00040006=0x00000004+0x00040000+0x00000002

呃,這裡有必要說明一下,大家在運算的時候,最好不要過於自信,直接就相加了,有時會達不到預期的效果,為什麼呢,可別忘了,這個是16進製制的運算,不是我們平日習慣的10進製運算,在沒有把握的時候,推薦開啟開始選單裡的計算器,切換成16進製制的模式來進行運算。

嗯,到這裡就講得差不多了,其實還有許多種組合方式,大家都可以自己去嘗試!

最後再給大家講一下我的發現,剛才大家可能已經發現了,guisetstate()我是放在dllcall的後面,如果放在前面呢?

嗯,我發現很多情況下,如果是放在前面,那麼dwfags裡的組合項中,最好是加上aw_hide這個標誌,否則看不出效果,而且經過這樣處理之後,效果跟原來可是不一樣的,以剛才的第乙個最簡單的例子來說,修改為這樣:  

$hwnd = guicreate("animate window", 300, 300)

guisetstate()

dllcall("user32.dll", "int", "animatewindow", "hwnd", $hwnd, "int", 1000, "long", 0x00090000)

0x00090000=0x00090000+0x00010000,也就是加多了乙個aw_hide,大家看看,效果是不是不一樣了?

視窗淡入淡出效果的實現

1.簡介 函式 setlayeredwindowattributes header declared in winuser.h,include windows.h import library user32.lib minimum operating systems windows 2000 所以在...

視窗淡入淡出效果的實現

1.簡介 函式 setlayeredwindowattributes header declared in winuser.h,include windows.h import library user32.lib minimum operating systems windows 2000 所以在...

jQuery 隱藏 顯示 淡入淡出 滑動

通過 jquery,您可以使用 hide 和 show 方法來隱藏和顯示 html 元素 hide click function show click function selector hide speed,callback selector show speed,callback 可選的 spe...