1. 程式人生 > >C# 模仿QQ、MSN訊息提示系列 二、基本效果模仿包含程式碼

C# 模仿QQ、MSN訊息提示系列 二、基本效果模仿包含程式碼

一、實現功能

程式開始執行螢幕右下角彈出提示框、等待、移出

當提示框移動到最高點時,滑鼠懸停時等待

二、編寫程式碼前需要確定的內容

1、確定視窗滾動的起始位置

2、確定視窗滾動的終止位置

3、確定視窗當前的滾動狀態

4、確定視窗距離螢幕右邊的距離單位畫素

5、確定等待時間

6、確定滑鼠是否懸停

三、編寫程式碼

1、建立一個Form窗體

為了效果好看些我把Form的 FormBorderStyle屬性設定為None

並且把一個美女圖片作為Form背景

如圖

 

2、給Form增加屬性

針對準備1 增加 private Point StartPoint;

針對準備2 增加 private Point EndPoint;

針對準備3 增加 列舉型別

1publicenum FormMoveState
2ExpandedBlockStart.gif {
3        MoveTop,Waiting,MoveDown

4 }

增加 private FormMoveState State;

還需要增加四個 時間控制元件


針對準備4 增加 private int marginRight = 10;

針對準備5 增加 private int waitCount = 100;(需要等待waitingTimer迴圈的次數) 

private int waitedCount = 0;(需要等待waitingTimer已經迴圈的次數)

針對準備6 增加 private bool mouseEnter;

ContractedBlock.gifCode

3、初始化

 初始化視窗大小

為使視窗更加美觀設定視窗的大小和背景大小一樣

 設定開始位置

開始位置X座標=工作區域寬度-視窗寬度-視窗距離螢幕右邊的距離

開始位置Y座標=工作區域高度

 設定結束位置

結束位置X座標=開始位置X座標(因為提示視窗只是上下移動所以橫座標是一致的)

結束位置Y座標=工作區域高度-視窗高度

設定視窗的初始位置為開始位置

設定開始時間控制元件的為可用

4、具體實現邏輯

開始時間控制元件負責在每次執行時把窗體的縱座標-1

結束時間控制元件負責在每次執行時把窗體的縱座標+1

等待時間空間每次執行時更新等待次數

滑鼠檢測控制元件負責判斷滑鼠當前的狀態

如果滑鼠在視窗上並且視窗的狀態為等待狀態

則等待時間控制元件失效(也就是繼續等待)

否則等待時間控制元件有效

初次寫教程類文章,還請大家多多指教。。。

作者:XuShen8314
出處:http://XuShen8314.cnblogs.com
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則視為侵權。