前往
大廳
主題

【C#】學習筆記 鬧鐘程式 改善篇 (Ver1.01)

落葉無聲 | 2012-07-09 16:41:58 | 巴幣 10 | 人氣 2196

C#學習筆記 鬧鐘程式 完成篇 (Ver1.01)

鬧鐘程式的主要程式碼請參考之前的文章:
小屋內關於鬧鐘程式文章連結

本篇僅提供更新後1.01版的程式下載及更新細節.



鬧鐘程式(ver1.01)下載

載點

解壓縮後點擊執行即可.

如有使用上問題, 煩請回報, 也歡迎提供意見 謝謝.




更新細節

1. 停止鬧鈴

當鬧鈴在響時, 點擊設定時間可以直接關閉鬧鈴. (這其實在一開始就應該先想到了 昏)



System.Media.
SoundPlayer Belling = newSystem.Media.SoundPlayer();
//播放
Belling.Play();
//停止
Belling.Stop();

2. 流程

因為加入了停止鬧鈴的功能, 流程也會有些許變更, 增加了Timer4. Timer4的主要作用, 是當鬧鈴播放完畢後, 將時間的設定功能還原. 所以恢復設定是根據(1)使用者關閉或(2)音樂播放完畢.



3. 計算音樂長度

音樂的長度是決定Timer4何時將設定時間還原. 原來我的想法是每秒去檢查音樂是否播放, 如沒有播放了, 則回復設定時間為"不啓動". 但後來在爬文中找到了可以計算音樂長度的方法, 其實是把人家寫的東西拿來用拉. . .

該工具實在異常強大好用, 這裡提供網址給大家參考 NAudio

下載後在參考的地方加入(如圖). (我是有將檔案也放在debug的資料夾)


接著在命名空間加入: using NAudio.Wave;


最後寫入方法()就可以使用了.

public static TimeSpanGetWavFileDuration(string fileName)
{
     WaveFileReader wf = new WaveFileReader(fileName);
     return wf.TotalTime;
}

//Timer4計算時間的範例

double GetLength;
TimeSpan SoundLength =GetWavFileDuration("Alarm.wav");
GetLength =SoundLength.Ticks;
timer4.Interval = Convert.ToInt32(GetLength / 10000);

4. 移掉Windows框架

原來是有Windows框架


拿掉Windows框架


this
.FormBorderStyle= FormBorderStyle.None;

5. 滑鼠移動框架

沒有了Windows的框架後, 是沒有辦法移動的, 所以要在Form的MouseDown, MouseUp和MouseMove加入程式碼.

先前文章滑鼠事件寫的程式碼, 用在Form上一直失敗, 有點挫敗感! 後來網路上爬文取得了一個較易理解的作法如下.

原則上也是先記下滑鼠移動前的位置(MouseDown),接著在MouseMove時減去移動X和Y.

bool MouseMoveFlag = false;
private Point MouseLocation;
private voidFM_DigitalAlarm_MouseDown(object sender, MouseEventArgs e)
{
   MouseMoveFlag = true;
   MouseLocation.X = e.X;
   MouseLocation.Y = e.Y;
}
private voidFM_DigitalAlarm_MouseUp(object sender, MouseEventArgs e)
{
   MouseMoveFlag = false;
}
private voidFM_DigitalAlarm_MouseMove(object sender, MouseEventArgs e)
{
  if (MouseMoveFlag)
  {
     Point CurrentLocation = Control.MousePosition;
     CurrentLocation.Y = (CurrentLocation.Y -MouseLocation.Y);
     CurrentLocation.X = (CurrentLocation.X -MouseLocation.X);
     this.Location= CurrentLocation;
  }
}



接下來的計劃. . .

  • 看能不能改美圖形鋸齒的問題

  • 使用者可以自己設定鬧鈴的音樂.

  • 程式閒置時, 透明度減少 (視其必要性)




2015-02-03 10:24:42
您好R大 小弟目前踏入C# 剛好GOOGLE到您的小屋,想請問是否可提供原始檔,方便小弟學習呢?純學習,不做其他用途使用 感謝您^^
2015-02-05 15:27:39
需要用到的程式碼, 基本上我小屋都有, 只是將他們整合在一起.
2012-07-10 16:42:30
看不懂
純友情推
2012-07-10 16:43:43
謝謝~ [e13]