前端阵子颓废不少,让远在国外的朋友月蓉知道了~(还是我自己告诉她的=_=||),被她提起了暑假前我对她做出的满怀热情的保证,我感到无比的....那个什么...所以最近一直忙着写程序,希望能把最近的颓废的时间争取回来~
这次我写的是一个闹铃软件,本来想截几个图像上来的,但是我找不到可以公开链接的免费相册,昏一个~所以附上程序下载地点(不是源代码)。
闹铃软件用到的很多功能是我书上没有遇到的,包括所使用到的控件和一些属性
我们现在就来一个一个讲解吧,希望大家不要嫌烦哦
第一个是画界面(点击此处预览界面),我截了VISTA的猫猫闹钟作为我的程序界面,所以这次要创建的不规则边框程序,编写过程如下:
1.FormBoderStyle设置为None,这样边框就不见,但是还有白白灰灰的程序面板
2.我们把TransparencyKey这个属性选择Web中的Transparent,这样全变成透明了
3.BackgroundImage设置为我们做的程序界面~我的美工实在不咋地,PS了半天才做出这么个界面=_=||
界面画完了,第二步是添加一些我以前没用过的控件.....这里使用到了numberUpDown,Timer,Notify等《C#入门经典》上没有提到的工具(至今只看了这本书,还只看了一半),这些工具的用法就看代码吧,还有很多要设置的嘞,特别是numberUpDown网上都找不太到(不是找不到)。
这里想贴段代码代码上来,是用API函数播放WAV文件的,我本来想提示声音用WMP空间做的,结果我VISTA下VS2005 C#没有WMP控件,不知道是VS2005去掉了呢还是VISTA下有兼容问题(VS2005兼容补丁打了),又或是WMP11就没有向VS2005添加WMP控件,算了,这些让微软想去,没有WMP我们就用API,代码如下,只能播放WAV文件,建议用SOX_GUI转化为小点的wav做声音
自己写的时候还可以添加一个using System.IO,然后用fileInfo检查声音文件存在性。
最后附上程序下载地址:
http://cid-856b7a1fbf560755.skydrive.live.com/self.aspx/My%20free%20softwares/Ring.rar
因为有音乐文件的关系,程序比较大,1.67M,XP及XP以下需要.NET FRAMEWORK支持
这次我写的是一个闹铃软件,本来想截几个图像上来的,但是我找不到可以公开链接的免费相册,昏一个~所以附上程序下载地点(不是源代码)。
闹铃软件用到的很多功能是我书上没有遇到的,包括所使用到的控件和一些属性
我们现在就来一个一个讲解吧,希望大家不要嫌烦哦
第一个是画界面(点击此处预览界面),我截了VISTA的猫猫闹钟作为我的程序界面,所以这次要创建的不规则边框程序,编写过程如下:
1.FormBoderStyle设置为None,这样边框就不见,但是还有白白灰灰的程序面板
2.我们把TransparencyKey这个属性选择Web中的Transparent,这样全变成透明了
3.BackgroundImage设置为我们做的程序界面~我的美工实在不咋地,PS了半天才做出这么个界面=_=||
界面画完了,第二步是添加一些我以前没用过的控件.....这里使用到了numberUpDown,Timer,Notify等《C#入门经典》上没有提到的工具(至今只看了这本书,还只看了一半),这些工具的用法就看代码吧,还有很多要设置的嘞,特别是numberUpDown网上都找不太到(不是找不到)。
这里想贴段代码代码上来,是用API函数播放WAV文件的,我本来想提示声音用WMP空间做的,结果我VISTA下VS2005 C#没有WMP控件,不知道是VS2005去掉了呢还是VISTA下有兼容问题(VS2005兼容补丁打了),又或是WMP11就没有向VS2005添加WMP控件,算了,这些让微软想去,没有WMP我们就用API,代码如下,只能播放WAV文件,建议用SOX_GUI转化为小点的wav做声音
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 API_PlaySound
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
internal class Helpers
{
[Flags]
public enum PlaySoundFlags : int
{
SND_SYNC = 0x0000, /* play synchronously (default) */ //同步
SND_ASYNC = 0x0001, /* play asynchronously */ //异步
SND_NODEFAULT = 0x0002, /* silence (!default) if sound not found */
SND_MEMORY = 0x0004, /* pszSound points to a memory file */
SND_LOOP = 0x0008, /* loop the sound until next sndPlaySound */
SND_NOSTOP = 0x0010, /* don't stop any currently playing sound */
SND_NOWAIT = 0x00002000, /* don't wait if the driver is busy */
SND_ALIAS = 0x00010000, /* name is a registry alias */
SND_ALIAS_ID = 0x00110000, /* alias is a predefined ID */
SND_FILENAME = 0x00020000, /* name is file name */
SND_RESOURCE = 0x00040004 /* name is resource name or atom */
}
[DllImport("winmm")]
public static extern bool PlaySound(string szSound, IntPtr hMod, PlaySoundFlags flags);
}
private void BTN_Play_Click(object sender, EventArgs e)
{
Helpers.PlaySound("start.wav", IntPtr.Zero, Helpers.PlaySoundFlags.SND_ASYNC);
}
private void BTN_Stop_Click(object sender, EventArgs e)
{
Helpers.PlaySound(null, IntPtr.Zero, Helpers.PlaySoundFlags.SND_ASYNC);
}
}
}
(以上代码为转载 ,自己做过小改动)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 API_PlaySound
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
internal class Helpers
{
[Flags]
public enum PlaySoundFlags : int
{
SND_SYNC = 0x0000, /* play synchronously (default) */ //同步
SND_ASYNC = 0x0001, /* play asynchronously */ //异步
SND_NODEFAULT = 0x0002, /* silence (!default) if sound not found */
SND_MEMORY = 0x0004, /* pszSound points to a memory file */
SND_LOOP = 0x0008, /* loop the sound until next sndPlaySound */
SND_NOSTOP = 0x0010, /* don't stop any currently playing sound */
SND_NOWAIT = 0x00002000, /* don't wait if the driver is busy */
SND_ALIAS = 0x00010000, /* name is a registry alias */
SND_ALIAS_ID = 0x00110000, /* alias is a predefined ID */
SND_FILENAME = 0x00020000, /* name is file name */
SND_RESOURCE = 0x00040004 /* name is resource name or atom */
}
[DllImport("winmm")]
public static extern bool PlaySound(string szSound, IntPtr hMod, PlaySoundFlags flags);
}
private void BTN_Play_Click(object sender, EventArgs e)
{
Helpers.PlaySound("start.wav", IntPtr.Zero, Helpers.PlaySoundFlags.SND_ASYNC);
}
private void BTN_Stop_Click(object sender, EventArgs e)
{
Helpers.PlaySound(null, IntPtr.Zero, Helpers.PlaySoundFlags.SND_ASYNC);
}
}
}
自己写的时候还可以添加一个using System.IO,然后用fileInfo检查声音文件存在性。
最后附上程序下载地址:
http://cid-856b7a1fbf560755.skydrive.live.com/self.aspx/My%20free%20softwares/Ring.rar
因为有音乐文件的关系,程序比较大,1.67M,XP及XP以下需要.NET FRAMEWORK支持