Windows mobile 的鼠标状态控制

很多人都会遇到一个问题,当我们执行一个复杂的操作是,界面会卡住。用户体验会感觉不好。那如果可以添加一个鼠标的忙碌状态的话就会好很多了。

以下是很简单的代码,用于控制鼠标的状态。

  1    public static class Cursor

 2     {
 3         [DllImport("coredll.dll")]
 4         public static extern IntPtr LoadCursor(IntPtr hInstance, CursorType lpCursorName);
 5         [DllImport("coredll.dll")]
 6         public static extern IntPtr SetCursor(IntPtr pCursor);
 7 
 8         public delegate void doing();
 9 
10         public enum CursorType : uint
11         {
12             IDC_ARROW = 32512U,            
13             IDC_WAIT = 32514U           
14         } 
15 
16         public static void Wait(){
17             SetCursor(LoadCursor(IntPtr.Zero, CursorType.IDC_WAIT));
18         }
19 
20         public static void Default()
21         {
22             SetCursor(LoadCursor(IntPtr.Zero, CursorType.IDC_ARROW));
23         }
24 
25         public static void DoSomething(doing something)
26         {
27             Wait();
28             something();
29             Default();
30         }
31 
32     }

其实方法很简单,在复杂耗时的操作之前调用Cursor.Wait()方法,在方法执行完之后再调用Cursor.Default()。而每次都要进行这两次操作会比较麻烦,所以我加入了DoSomething方法,用委托去实现,则可以直接调用Curosr. DoSomething(委托)去实现。当然委托还可以自己拓展,用于满足自己程序的需要。

posted @ 2009-10-28 10:46  MessageBox  阅读(572)  评论(7)    收藏  举报