micaps的主選單使用者是可以根據需要編輯的,但micaps的各類資料選單專案極多,2000多行,手工編輯會累死人的。
由於在sharpdevelop的架構中,主選單是由addin檔案定義的,**均無法動態生成選單項,所以micaps開發人員編寫了「選單文字編輯」軟體來生成addins\datashortcut\datashortcut.addin檔案,實現選單編輯,
但這樣仍顯得不直觀,太麻煩,很少有人大量修改自帶選單。能不能根據綜合圖目錄結構自動建立選單呢?
想想sharpdevelop裡的「最近開啟檔案列表」、「視窗列表」等選單不就是動態生成的嗎?sharpdevelop還是留有介面的。
這一節,我們就來製作乙個micaps綜合選單自動生成外掛程式。
與helloworld類似,我們給micaps的主選單增加了乙個選單項,與helloworld不同的是,這個選單項的type屬性為「builder」,代表的意思是這是乙個由**生成的選單,生成這個選單的類名是cmbmenubuilder。
**中,我們要實現addin檔案中指定的生成選單的類cmbmenubuilder,該類需要實現isubmenubuilder介面。isubmenubuilder介面也很簡單,只包含乙個方法。**關鍵部分如下:
public class cmbmenubuilder : micaps.winforms.isubmenubuilder
#endregion
}
**中findfile方法是遞迴查詢檔案的**,這裡不列出來了。
編譯完成後,執行micaps,主選單上將出現綜合圖選單項,自動根據目錄結構生成了選單,單擊選單項能顯示資料。有了這個外掛程式,micaps裡原有的地面、高空、t639、ec等選單意義就不大了,可以刪掉它,修改addins\datashortcut\ datashortcut.addin檔案,刪除裡面不需要的選單項(2000多行),然後執行micaps,效果如下:
Micaps3 2二次開發例項教程 9
上面幾節的例子實現了給micaps增加選單 工具條按鈕 浮動視窗等,但僅僅是給micaps的介面上增加元素 除了全屏功能 卻無具體功能。如何讓外掛程式與micaps進行互動呢?這個還是有些難度的,因為這一套大部分是由micaps開發人員定義的,必須要有詳細的文件才能進行。本節我們將新建乙個浮動視窗,...
Micaps3 2二次開發例項教程 10
檢視是什麼?在micaps中,就是地圖那塊區域,為什麼不叫直接叫地圖呢?因為在sharpdevelop框架中,這塊地方不僅可以顯示地圖,還可以顯示其它東東,地圖只是檢視的一種,可以是個word文件 網頁等等,甚至可以做個遊戲嵌進去,是不是很有 力?本節將給micaps增加記寫字板檢視。建立新檢視,首...
Micaps3 2二次開發例項教程 14
第十四節 例項十 重新編寫micaps3.2.exe sharpdevelop micaps啟動原始碼分析 通過前幾節的折騰,我們已經將micaps的主要機理摸的差不多了,你甚至已經感到可以將micaps重做了 其實不然,這些開發根本沒有涉及到micaps的核心 地圖 這一節我們就將它折騰到底,重新...