手把手教你 如何製作以動畫的形式顯示窗體

2021-09-05 19:40:45 字數 2796 閱讀 8395

一般的, 當我們啟動乙個應用程式後, 普通的應用程式視窗都是瞬間顯示到螢幕上. 您是否想象過這樣一種情景 : 開啟乙個應用程式後, 視窗的顯示跟幻燈片一樣變幻莫測,豐富多彩? 也許不能登大雅之堂, 但至少可以娛樂自己.

好了, 進入正題: 您現在可以想象這樣一幅畫面:  當您啟動乙個應用程式後, 顯示器**出現乙個小點, 然後慢慢變大, 向四周不斷擴充套件, 直到視窗全部顯示. 而當您關閉它時它又會從上向下慢慢地從顯示器中消失.... 這將是什麼效果? 呵呵, 如果您願意,  下面就跟著我一起完成這樣乙個偉大的夢想吧.

下面結合本例詳細介紹 animatewindow  函式在 c#中的應用.

宣告方式:   

宣告

[dllimportattribute(

"user32.dll")]

private

static

extern

bool

animatewindow(intptr hwnd,

intdwtime,

intdwflags);

引數說明:

code(1

). intptr hwnd: 目標視窗的控制代碼物件, 一般為

this

.handle(2

). int

dwtime: 動畫的持續時間, 數值越大動畫效果的時間越長(3

). int

dwflags: 動畫效果型別選項, 在c#中宣告如下:

注: 您程式中只宣告需要的動畫型別即可, 關於每個引數的含義會在後面詳細說明

public

const

int32 aw_hor_positive

=0x00000001

;public

const

int32 aw_hor_negative

=0x00000002

;public

const

int32 aw_ver_positive

=0x00000004

;public

const

int32 aw_ver_negative

=0x00000008

;public

const

int32 aw_center

=0x00000010

;public

const

int32 aw_hide

=0x00010000

;public

const

int32 aw_activate

=0x00020000

;public

const

int32 aw_slide

=0x00040000

;public

const

int32 aw_blend

=0x00080000

;

動畫效果型別詳細說明表:

1. aw_slide : 使用滑動型別, 預設為該型別. 當使用 aw_center 效果時, 此效果被忽略

2. aw_active: 啟用視窗, 在使用了 aw_hide 效果時不可使用此效果

3. aw_blend: 使用淡入效果

4. aw_hide: 隱藏視窗

5. aw_center: 與 aw_hide 效果配合使用則效果為視窗幾內重疊,  單獨使用視窗向外擴充套件.

6. aw_hor_positive : 自左向右顯示視窗

7. aw_hor_negative: 自右向左顯示視窗

8. aw_ver_positve: 自頂向下顯示視窗

9. aw_ver_negative : 自下向上顯示視窗

看懂了這些, 下面我們的工作會變得非常簡單.

啟動程式後, 動畫效果顯示視窗的**如下:

code

animatewindow(

this

.handle,

1000

, aw_slide

+aw_center);

而關閉程式後, 動畫效果顯示視窗**如下:

code

private

void

form1_formclosed(

object

sender, formclosedeventargs e)

程式的完整**如下:

code

using

system;

using

system.collections.generic;

using

system.componentmodel;

using

system.data;

using

system.drawing;

using

system.text;

using

system.windows.forms;

using

system.runtime.interopservices;

namespace

falshwindows

private

void

form1_formclosed(

object

sender, formclosedeventargs e)}}

後記: 雖為一雕蟲小技,但蘊涵著很多思想, 大家可以眼高, 但手一定要底. 

必得原理,程式設計是件很快樂的事.

手把手教你製作 螞蟻呀嘿

最近網上比較紅的嗎咿呀嘿,原始碼github完全開源,這裡記錄一下詳細步驟,可以少踩一些坑,不講原理,不講為什麼,只講怎麼做。筆者 使用的是 mac。brew install ffmpeg git clone切換到專案目錄 cd paddlegan 安裝所需包 pip3.7 install r re...

手把手教你如何追女生

我是女生,看到有的男生想追自己喜歡的女孩子又不敢追,還想人家倒追她,我很反感。從乙個女生的角度,我比較了解女孩子的心理。女孩子大多不會主動出擊,去追求自己喜歡的男孩,除了確實太喜歡了或者是那種比較有個性的勇敢的女孩子。所以,如果你很喜歡乙個女孩子,並且認為她對你也有點意思,那就主動點,別跟她搞拉鋸戰...

手把手教你如何使用Poco TCPServer框架

poco c 開發庫的特點是非常適合寫後台處理程式,側重於網際網路時代的網路應用程式,效率也很高。前台介面程式使用qt框架庫,非常好,兩個庫相輔相成,可解決專案上的大部分問題.poco 庫提供tcpserver框架,用以搭建自定義的 tcp 伺服器。tcpserver維護乙個連線佇列 乙個連線線程池...