C#操縱系統(tǒng)菜單基礎(chǔ)分析
在向大家詳細(xì)介紹C#操縱系統(tǒng)菜單方法之前,首先讓大家了解下C#操縱系統(tǒng)菜單簡介,然后全面介紹C#操縱系統(tǒng)菜單方法。
.NET框架是Windows應(yīng)用領(lǐng)域中一個(gè)非常新的技術(shù),可以肯定在未來的一段時(shí)間內(nèi),.NET應(yīng)用必須與現(xiàn)存的Windows技術(shù)交互作用。這種交互作用主要體現(xiàn)在兩個(gè)領(lǐng)域:COM和應(yīng)用編程接口(API)。為此,.NET框架在Windows API之上提供了一個(gè)OO層,但是有時(shí)候可能需要使用一個(gè).NET不可到達(dá)的API調(diào)用。在這種情況下,可以使用.NET平臺(tái)調(diào)用(P/Invoke)機(jī)制從.NET中調(diào)用C或C++函數(shù)。因?yàn)閃indows API函數(shù)在DLL中,所以,P/Invoke為從.NET代碼調(diào)用DLL中的C或C++函數(shù)提供了一種通用機(jī)制。
本文針對C#.NET中沒有提供直接的類似SystemMenu的屬性或類似GetSystemMenu的成員函數(shù)的實(shí)際,編寫了一個(gè)C#類SystemMenu,從而實(shí)現(xiàn)了傳統(tǒng)的對于系統(tǒng)菜單的操作,這是通過調(diào)用本地Windows API來完成的。
C#操縱系統(tǒng)菜單簡介
當(dāng)你單擊窗口圖標(biāo)或右擊窗口標(biāo)題欄時(shí)系統(tǒng)菜單即彈出。它包含當(dāng)前窗口的默認(rèn)行為。不同窗口的系統(tǒng)菜單看起來有些不同,如一個(gè)正常的窗口的系統(tǒng)菜單看起來與一個(gè)工具欄子對話框窗口的菜單就不一樣。
修改系統(tǒng)菜單的好處:
◆添加應(yīng)用程序自己定義的菜單項(xiàng)。
◆在WW被最小化時(shí),SS是一個(gè)很好的地方來放置動(dòng)作,可以被存取,因?yàn)镾S可以顯示,通過在任務(wù)欄窗口圖標(biāo)上單擊右鍵。
◆使某菜單項(xiàng)失去能力,如從系統(tǒng)菜單中移去“最大化”,“最小化”“關(guān)閉”等。由于這種改動(dòng)還影響到窗口右上角的三個(gè)按鈕,所以這是一個(gè)使窗口右上角“X”失去能力的不錯(cuò)的辦法。
C#操縱系統(tǒng)菜單方法
通過調(diào)用 API函數(shù)GetSystemMenu,你就檢索到了系統(tǒng)菜單的一個(gè)拷貝。該函數(shù)的第二個(gè)參數(shù)指明是否你要復(fù)位系統(tǒng)菜單到它的缺省狀態(tài)。再加上另外幾個(gè)API菜單函數(shù)如AppendMenu, InsertMenu等,你就能實(shí)現(xiàn)對于系統(tǒng)菜單的靈活控制。
【編輯推薦】