第一个真正意义的软件,不只是程序了哦~

Posted on 2007-08-31 21:05  Samson小天  阅读(840)  评论(5编辑  收藏  举报
   前端阵子颓废不少,让远在国外的朋友月蓉知道了~(还是我自己告诉她的=_=||),被她提起了暑假前我对她做出的满怀热情的保证,我感到无比的....那个什么...所以最近一直忙着写程序,希望能把最近的颓废的时间争取回来~
   这次我写的是一个闹铃软件,本来想截几个图像上来的,但是我找不到可以公开链接的免费相册,昏一个~所以附上程序下载地点(不是源代码)。
   闹铃软件用到的很多功能是我书上没有遇到的,包括所使用到的控件和一些属性
我们现在就来一个一个讲解吧,希望大家不要嫌烦哦

   第一个是画界面(点击此处预览界面),我截了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.IO,然后用fileInfo检查声音文件存在性。
最后附上程序下载地址:
http://cid-856b7a1fbf560755.skydrive.live.com/self.aspx/My%20free%20softwares/Ring.rar

因为有音乐文件的关系,程序比较大,1.67M,XP及XP以下需要.NET FRAMEWORK支持

Copyright © 2024 Samson小天
Powered by .NET 8.0 on Kubernetes