.Net Compact Framework 小技巧(1)
在開發(fā)過程中都會(huì)遇到一些小小的問題,可能這個(gè)問題看似簡(jiǎn)單,但處理起來就相當(dāng)?shù)穆闊┮舱f不定.
我將一些自己開發(fā)中的小技巧寫出來告訴給大家,希望大家有所幫助.
這篇文章中將介紹如何隱藏起Form右上角的OK/X按鈕,有時(shí)候用戶覺得不需要這個(gè)按鈕,那去掉它吧~~~~
再次介紹下該按鈕的功能,X表示最小化,OK表示確認(rèn)并關(guān)閉.通常新建一個(gè)Form后,默認(rèn)窗體的最小化是True,所以如果需要顯示OK的話,就需要將該屬性設(shè)為False.
隱藏該按鈕需要調(diào)用3個(gè)API
1?[DllImport("aygshell.dll")]2?private?static?extern?bool?SHDoneButton(IntPtr?hWnd,?UInt32?dwState);
3?
4?[DllImport("coredll.dll")]
5?public?static?extern?UInt32?SetWindowLong(IntPtr?hWnd,?int?nIndex,?UInt32?dwNewLong);
6?
7?[DllImport("coredll.dll")]
8?public?static?extern?UInt32?GetWindowLong(IntPtr?hWnd,?int?nIndex);
SHDoneButton--窗體為OK時(shí),調(diào)用此方法即可.
GetWindowLong--獲得指定窗口的信息
SetWindowLong--設(shè)置指定窗口的信息,這2個(gè)方法結(jié)合起來用,才能隱藏X按鈕
具體使用
?1?public?const?UInt32?SHDB_SHOW?=?0x0001;?2?public?const?UInt32?SHDB_HIDE?=?0x0002;
?3?public?const?int?GWL_STYLE?=?-16;
?4?public?const?UInt32?WS_NONAVDONEBUTTON?=?0x00010000;
?5?
?6?///?<summary>
?7?///?隱藏OK按鈕
?8?///?</summary>
?9?///?<param?name="hWnd"></param>
10?public?static?void?HideDoneButton(IntPtr?hWnd)
11?{
12?????SHDoneButton(hWnd,?SHDB_HIDE);
13?}
14?
15?///?<summary>
16?///?隱藏X按鈕
17?///?</summary>
18?///?<param?name="hWnd"></param>
19?public?static?void?HideXButton(IntPtr?hWnd)
20?{
21?????UInt32?dwStyle?=?GetWindowLong(hWnd,?GWL_STYLE);
22?
23?????if?((dwStyle?&?WS_NONAVDONEBUTTON)?==?0)
24?????????SetWindowLong(hWnd,?GWL_STYLE,?dwStyle?|?WS_NONAVDONEBUTTON);
25?}
在實(shí)際調(diào)用時(shí),只要將窗體的Handle作為參數(shù)傳入即可.
隱藏按鈕后,如何打開?
只需要設(shè)置窗體的MinimizeBox屬性即可.想顯示OK,設(shè)為False.想顯示X,設(shè)為True即可.
顯示效果:
顯示OK按鈕
顯示X按鈕
隱藏按鈕
代碼下載:DeviceTechDemo.rar
運(yùn)行環(huán)境:VS2008 + WM6.0 + .net cf3.5
Author:AppleSeeker(馮峰)
Date:2009-2-2
文章導(dǎo)讀:移動(dòng)開發(fā)索引貼
總結(jié)
以上是生活随笔為你收集整理的.Net Compact Framework 小技巧(1)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java并发编程(01):线程的创建方式
- 下一篇: 打造一流的研发中心