|
導讀微信小程序,簡稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶掃一掃或搜一下即可打開應用。小程序是一種不用下載就能使用的應用,也是一... 微信小程序,簡稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶掃一掃或搜一下即可打開應用。小程序是一種不用下載就能使用的應用,也是一項門檻非常高的創新,經過將近兩年的發展,已經構造了新的小程序開發環境和開發者生態。 ![]() 一般來說,在Windows XP畫面的右下角會提示用戶目前的時間與日期,如果用點兩下右下角的時間或是日期文字后,會出現如圖表1所示之「日期和時間 內容」對話框。請注意對話框右方的小時鐘,時針、分針與秒針會隨著時間的流逝而改變位置,就好像真的時鐘一樣。現在,利用一些邏輯的推演與.Net Framework精巧的繪圖類別,也能夠輕易做出類似的效果,以下是我們的說明。 程序范例
圖表2所示者是程序范例的執行結果,在窗體的Load事件處理例程中,計算繪制時鐘的半徑以及坐標位置,當用戶調整時鐘所屬之窗體大小時,窗體會以雙重緩沖的控制模式,自動重繪時鐘的內容。之所以設定雙重緩沖,是為了減少窗體重繪時所造成的畫面閃動,程序代碼如下所列: private void Blog_DemoForm007_Load(object sender, EventArgs e)
{
// 判斷窗體的框線樣式是否為可調整的框線。
DoShowFrame = (this.FormBorderStyle == FormBorderStyle.Sizable);
DemoClock = new Clock(this);
// 取回矩型的寬度與高度坐標。
ClientOffset = CalcClientLocation();
// 計算時鐘半徑與坐標。
CalcCircleSize();
// 指定窗體樣式位,當控件重新調整大小時,會重新繪制。
this.SetStyle(ControlStyles.ResizeRedraw, true);
// 指定窗體樣式位,控件會忽略窗口訊息WM_ERASEBKGND 以降低重繪閃動,
// 控件會自己繪制,操作系統不必執行,
// 并且繪制已在緩沖區執行,繪制完成后將結果輸出至屏幕,
// 設定雙重緩沖能避免控件重繪時所造成的重繪閃動。
this.SetStyle(ControlStyles.AllPaintingInWmPaint |
ControlStyles.UserPaint | ControlStyles.DoubleBuffer, true);
}用戶除了能夠改變窗體的大小,還可以讓時鐘外圍的窗體框架消失,如此一來小時鐘的外型就跟一般傳統的時鐘沒有什么兩樣,如圖表3所示:
也許您會問,在沒有窗體外框的情況下,能不能夠用鼠標拖拉的方式將小時鐘移動到想要的位置上?答案是肯定的。請在窗體的MouseDown、MouseUp與MouseMove事件處理例程撰寫如下所示之程序代碼: private void Blog_DemoForm007_MouseDown(object sender, MouseEventArgs e)
{
// 用戶按下鼠標左鍵。
if (e.Button == MouseButtons.Left)
{
IsMouseDown = true;
MouseOffset.X = e.X;
MouseOffset.Y = e.Y;
}
}
private void Blog_DemoForm007_MouseUp(object sender, MouseEventArgs e)
{
IsMouseDown = false;
}
private void Blog_DemoForm007_MouseMove(object sender, MouseEventArgs e)
{
// 移動窗體位置。
if (IsMouseDown)
{
this.Location = new Point(
this.Location.X + e.X - MouseOffset.X,
this.Location.Y + e.Y - MouseOffset.Y);
}
}不久之后,我們還會完成一個更完整的小時鐘范例,加入更多更豐富的功能,例如:倒數計時、改變時鐘的顏色與漸層效果、顯示文字時鐘、以及時鐘功能設定文件等等,今天就先聊到這里,下次再見。 以上就是詳解小時鐘程序的實現方法的詳細內容,更多請關注php中文網其它相關文章! 小程序是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶掃一掃或者搜一下即可打開應用。 |
溫馨提示:喜歡本站的話,請收藏一下本站!