資源簡介
11111111111111111111111
核心代碼:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; using System.IO; using MediaControlLibrary; namespace MusicPlayer { public partial class MainForm : Form { //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; public MainForm() { InitializeComponent(); //設置最大尺寸,防止全屏時遮擋任務欄 this.MaximumSize = Screen.PrimaryScreen.WorkingArea.Size; //啟動動畫 AnimateWindow(this.Handle, 100, 0x00000010);//開始窗體動畫,中心展開 //歌詞窗口 //lyricShow1.InitAndShowDesktopLyric(); for (int i = 0; i < 1; i ) { MediaList list = new MediaList("默認列表"); for (int j = 0; j < 10; j ) { MediaItem item = new MediaItem("歌曲" j, "00:00"); item.SecondContent = "111223"; list.SubItems.Add(item); } mediaContainer1.Lists.Add(list); MediaList list1 = new MediaList("新建列表"); mediaContainer1.Lists.Add(list1); } } /// <summary> /// 退出時動畫效果 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void MainForm_FormClosed(object sender, FormClosedEventArgs e) { if (this.WindowState != FormWindowState.Minimized) { while (this.Height > 10) { this.Location = new Point(this.Location.X, this.Location.Y 15); this.Height -= 30; this.Opacity -= 0.01; } } Application.Exit(); } #region 播放控制與信息顯示相關變量 MyMedia mySong = new MyMedia(); bool IsMute = false; bool IsStop = false; #endregion #region API和常量 [DllImport("user32.dll")] private static extern bool AnimateWindow(IntPtr hwnd, int dwTime, int dwFlags); [DllImport("user32.dll")] public static extern bool ReleaseCapture(); [DllImport("user32.dll")] private static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam); private const int WM_SYSCOMMAND = 0x0112; private const int SC_MOVE = 0xF010; private const int HTCAPTION = 0x0002; private const int WM_NCHITTEST = 0x84; private const int HTCLIENT = 0x1; private const int WM_NCLBUTTONDBLCLK = 0xA3;//鼠標雙擊標題欄消息 //改變窗體大小 public const int WMSZ_LEFT = 0xF001; public const int WMSZ_RIGHT = 0xF002; public const int WMSZ_TOP = 0xF003; public const int WMSZ_TOPLEFT = 0xF004; public const int WMSZ_TOPRIGHT = 0xF005; public const int WMSZ_BOTTOM = 0xF006; public const int WMSZ_BOTTOMLEFT = 0xF007; public const int WMSZ_BOTTOMRIGHT = 0xF008; #endregion #region 無邊框窗口拖動及大小狀態切換 protected override CreateParams CreateParams { get { const int WS_MINIMIZEBOX = 0x00020000; // Winuser.h中定義 CreateParams cp = base.CreateParams; cp.Style = cp.Style | WS_MINIMIZEBOX; // 允許最小化操作 return cp; } } private void tpnlMain_MouseDown(object sender, MouseEventArgs e) { //如果是頂部或底部的空欄 if ((e.Y > 0 && e.Y < 30) || (e.Y > this.Height - 40 && e.Y < this.Height)) { //按下的是鼠標左鍵,則拖動窗口 if (e.Button == MouseButtons.Left) { ReleaseCapture(); SendMessage(this.Handle, WM_SYSCOMMAND, SC_MOVE HTCAPTION, 0);//*********************調用移動無窗體控件函數 } //雙擊頂部標題欄切換窗口狀態 if ((e.Y > 0 && e.Y < 30) && e.Button == MouseButtons.Left && e.Clicks == 2) { if (this.WindowState == FormWindowState.Normal) { SendMessage(this.Handle, 274, 61488, 0); return; } if (this.WindowState == FormWindowState.Maximized) { SendMessage(this.Handle, 274, 61728, 0); return; } } } //拉伸改變大小 if (e.Y>0&&e.Y<3) { SendMessage(this.Handle,WM_SYSCOMMAND, WMSZ_TOP,0); } } private void btnCloseBox_Click(object sender, EventArgs e) { this.Close(); } private void btnMaximizeBox_Click(object sender, EventArgs e) { //if (Properties.Settings.Default.RememberMaximizeFunction == 0) //{ // Point P = PointToScreen(new Point(btnMaximizeBox.Left, btnMaximizeBox.Bottom)); // cmenuMaxMode.Show(P); //} if (this.WindowState == FormWindowState.Normal) { this.WindowState = FormWindowState.Maximized; } else { this.WindowState = FormWindowState.Normal; } } private void btnMinimizeBox_Click(object sender, EventArgs e) { this.WindowState = FormWindowState.Minimized; } private void 音樂魔方模式ToolStripMenuItem_Click(object sender, EventArgs e) { } private void 最大化ToolStripMenuItem_Click(object sender, EventArgs e) { if (this.WindowState == FormWindowState.Normal) { this.WindowState = FormWindowState.Maximized; } else { this.WindowState = FormWindowState.Normal; } } private void 記住我的選擇ToolStripMenuItem_Click(object sender, EventArgs e) { } #endregion private void MainForm_Load(object sender, EventArgs e) { tbarVolume.Value = Properties.Settings.Default.Volume; webBrowser1.Url = new Uri( "http://www.kugou.com/fm2/"); } #region 播放控制和狀態信息顯示 /// <summary> /// 播放、暫停 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnPlayPause_Click(object sender, EventArgs e) { if (mySong.CurrentState != State.Playing) { MyTime.Start(); mySong.Play(); } else { MyTime.Stop(); mySong.Puase(); } } /// <summary> /// 上一首 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnPreSong_Click(object sender, EventArgs e) { } private void btnNextSong_Click(object sender, EventArgs e) { //OpenFileDialog ofd = new OpenFileDialog(); //ofd.Filter = "歌詞文件(*.lrc)|*.lrc"; //if (ofd.ShowDialog() == DialogResult.OK) //{ // LyricShow.Lyric l = new LyricShow.Lyric(ofd.FileName); // lyricShow1.SetLyric(l); //} } /// <summary> /// 顯示時間提示 /// </summary> /// <param name="durTime">已播放時間</param> /// <param name="totalTime">歌曲總時間</param> private void DisplayTime(long durTime,long totalTime) { lblPastTime.Text = string.Format("{0:D2}:{1:D2}", durTime / 60, durTime % 60); lblTotalTime.Text = string.Format("{0:D2}:{1:D2}", totalTime / 60, totalTime % 60); } /// <summary> /// 從完整路徑中分離出歌曲名 /// </summary> /// <param name="path">完整路徑</param> /// <returns>歌名</returns> private string GetSongName(string path) { int index1=path.LastIndexOf(@"\"); int index2 = path.LastIndexOf(@"."); string songName = path.Substring(index1 1,index2-index1); return songName; } #endregion // 動態顯示時間和時間條 private void MyTime_Tick(object sender, EventArgs e) { //lyricShow1.CurrentProgress = mySong.CurrentPosition; //lyricShow1.RefreshDesktopLyric(); IsStop = false; if (mySong.CurrentState == State.Playing) { //tbarTime.Value = mySong.CurrentPosition; } else if (mySong.CurrentState == State.Puased) { MyTime.Stop(); } //DisplayTime(tbarTime.Value, mySong.TotalSeconds); } // 左上角標題圖標點擊,彈出菜單 private void btnTitleAndIcon_Click(object sender, EventArgs e) { Point P = PointToScreen(new Point(btnTitleAndIcon.Left, btnTitleAndIcon.Bottom)); cmenu.Show(P); } #region 右鍵菜單操作 private void 添加本地歌曲ToolStripMenuItem_Click(object sender, EventArgs e) { OpenFileDialog ofd = new OpenFileDialog(); if (ofd.ShowDialog() == DialogResult.OK) { } } private void 添加本地歌曲文件夾ToolStripMenuItem_Click(object sender, EventArgs e) { FolderBrowserDialog fbd = new FolderBrowserDialog(); if (fbd.ShowDialog()==DialogResult.OK) { } } private void 增大音量ToolStripMenuItem_Click(object sender, EventArgs e) { VolumeUp(50); } private void 減小音量ToolStripMenuItem_Click(object sender, EventArgs e) { VolumeDown(50); } private void 顯示桌面歌詞ToolStripMenuItem_Click(object sender, EventArgs e) { } private void 鎖定桌面歌詞ToolStripMenuItem_Click(object sender, EventArgs e) { } private void 設置ToolStripMenuItem_Click(object sender, EventArgs e) { } private void 退出ToolStripMenuItem_Click(object sender, EventArgs e) { this.Close(); } #endregion #region 音量調節與提示 /// <summary> /// 增大音量 /// </summary> /// <param name="step">音量改變量</param> private void VolumeUp(int step) { } /// <summary> /// 減小音量 /// </summary> /// <param name="step">音量改變量</param> private void VolumeDown(int step) { } private void tbarVolume_ValueChanged(object sender, EventArgs e) { } #endregion /// <summary> /// 添加本地歌曲文件 /// </summary> /// <param name="filePath">文件完全路徑</param> private void AddSong(string filePath) { } /// <summary> /// 添加本地歌曲文件夾 /// </summary> /// <param name="folderPath">文件夾路徑</param> private void AddSongFolder(string folderPath) { } //退出時保存設置的音量等信息 private void MainForm_FormClosing(object sender, FormClosingEventArgs e) { Properties.Settings.Default.Volume = tbarVolume.Value; Properties.Settings.Default.Save(); } private void btnPreSong_MouseClick(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { OpenFileDialog mydlg = new OpenFileDialog(); mydlg.ShowDialog(); mySong.FileName = mydlg.FileName; //tbarTime.Maximum = mySong.TotalSeconds; lblSongName.Text = GetSongName(mydlg.FileName); mySong.Play(); MyTime.Start(); //DisplayTime(tbarTime.Value, mySong.TotalSeconds); } } } }
代碼片段和文件信息
using?System;
using?System.Drawing;
using?System.Drawing.Drawing2D;
using?System.Drawing.Imaging;
using?System.Runtime.InteropServices;
using?System.Windows.Forms;
namespace?LyricShow
{
????public?partial?class?frmDesktopLyric?:?Form
????{
????????public?frmDesktopLyric()
????????{
????????????InitializeComponent();
????????????//將窗體設置為支持透明背景
????????????this.Setstyle(Controlstyles.SupportsTransparentBackColor?true);
????????}
????????bool?enter?=?false;?internal?bool?trans?=?false;?????//鼠標是否已經移入歌詞區域、鼠標穿透是否已經開啟
????????internal?Bitmap?oldbitmap?=?new?Bitmap(1?1);????????//最后設置的位圖
????????internal?string?cache?=?““;??????????????????????????//最后設置的文本
????????internal?Color?border?=?Color.Black;?????????????????//邊框顏色
????????#region?屬性
????????protected?overr
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2013-11-17?13:31??MusicPla
?????目錄???????????0??2013-11-17?13:30??MusicPla
?????目錄???????????0??2013-11-17?13:30??MusicPla
?????目錄???????????0??2013-11-17?13:30??MusicPla
?????文件???????22016??2013-11-16?21:10??MusicPla
?????文件???????56832??2013-11-16?21:10??MusicPla
?????目錄???????????0??2013-11-16?21:04??MusicPla
?????文件???????10048??2013-11-16?21:04??MusicPla
?????文件????????1967??2013-11-16?21:04??MusicPla
?????文件????????5817??2013-11-16?21:04??MusicPla
?????文件????????6056??2013-11-16?21:04??MusicPla
?????文件???????20552??2013-11-16?21:04??MusicPla
?????文件????????2886??2013-11-16?21:04??MusicPla
?????文件?????????227??2013-11-16?21:04??MusicPla
?????目錄???????????0??2013-11-17?13:30??MusicPla
?????目錄???????????0??2013-11-17?13:30??MusicPla
?????文件????????1229??2013-11-16?21:04??MusicPla
?????文件????????5980??2013-11-16?21:07??MusicPla
?????文件????????3413??2013-11-16?21:10??MusicPla
?????文件?????????846??2013-11-16?21:10??MusicPla
?????文件????????1345??2013-11-16?21:10??MusicPla
?????文件???????22016??2013-11-16?21:10??MusicPla
?????文件?????????180??2013-11-16?21:10??MusicPla
?????文件???????56832??2013-11-16?21:10??MusicPla
?????目錄???????????0??2013-11-16?21:04??MusicPla
?????目錄???????????0??2013-11-16?21:04??MusicPla
?????目錄???????????0??2013-11-16?21:04??MusicPla
?????目錄???????????0??2013-11-17?13:30??MusicPla
?????文件????????1362??2013-11-16?21:04??MusicPla
?????目錄???????????0??2013-11-17?13:30??MusicPla
?????目錄???????????0??2013-11-17?13:30??MusicPla
............此處省略383個文件信息
評論
共有 條評論