好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

C#实现带消息数的App图标

上次写了一篇博文,但是每次更新图标时,桌面会闪烁(刷新),有博友说人家的图标都不会刷新,还能动画.我想了一下,如果要达到这个效果,可以用form来实现,就是在form中嵌入一个图片,然后用一个label来动态显示消息数,关键是将form的边框隐藏,背景设为透明即可.如果要有旋转或者缩放动画,都可以用c#来实现.

?

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;

 

namespace aopdemo

{

   public partial class appiconmsg : form

   {

     public appiconmsg()

     {

       initializecomponent();

       //设置背景为透明

       this .backcolor = color.fromargb(116, 164, 2);

       this .transparencykey = this .backcolor;

      

     }

 

     private void appiconmsg_load( object sender, eventargs e)

     {

       this .width = 64;

       this .height = 64;

       this .label1.text = "99" ;

       this .timer1.enabled = true ;

      

     }

 

     // drag it around the screen

     private const int wm_nchittest = 0x84;

     private const int htcaption = 0x2;

     protected override void wndproc( ref message m)

     {

       //disable mousedoubleclick on form

       if (m.msg == wm_lbuttondblclk)

       {

         form2 frm = new form2(msg);

         frm.show();

         //this.close();

         return ;

       }

 

       if (m.msg == wm_nclbuttondblclk)

       {

         form2 frm = new form2(msg);

         frm.show();

         // this.close();

         return ;

       }

 

       //drag

       if (m.msg == wm_nchittest)

         m.result = new intptr(htcaption);

       else

         base .wndproc( ref m);

     }

     private int msg = 0;

     private void timer1_tick( object sender, eventargs e)

     {

       int num = new random().next(1, 100);

       msg = num;

       this .label1.text = num.tostring();

     }

 

     const int wm_lbuttondblclk = 0x0203; //client area

     const int wm_nclbuttondblclk = 0x00a3; //non-client area

     private void toolstripexit_click( object sender, eventargs e)

     {

       this .close();

     }

 

   }

}

dy("nrwz");

查看更多关于C#实现带消息数的App图标的详细内容...

  阅读:61次