上面幾節的例子實現了給micaps增加選單、工具條按鈕、浮動視窗等,但僅僅是給micaps的介面上增加元素(除了全屏功能),卻無具體功能。如何讓外掛程式與micaps進行互動呢?這個還是有些難度的,因為這一套大部分是由micaps開發人員定義的,必須要有詳細的文件才能進行。
本節我們將新建乙個浮動視窗,在此視窗裡實現資料檢索功能。在前一節的基礎上,在新建的使用者控制項中放入treeview控制項,然後遞迴遍歷綜合圖目錄中的檔案新增到treeview中,為了方便,還可以給它加上右鍵選單、工具條等。這些都是c#的基礎知識,我這裡就不羅嗦了(直接將我做的freemicaps的資料檢索控制項移植過來)。
本外掛程式的關鍵是在外掛程式**中讓micaps開啟選中的檔案並顯示出來。看如下**:
/// /// 開啟檔案
///
///
private void openfile(string fn)
catch (exception exp)
finally}}
/// /// 在指定view中開啟檔案
///
///
///
internal static void openlayer(irenderview view, string filename)}}
兩個函式實現了開啟檔案的**。過程是這樣:
1、 取得當前檢視(就是地圖區域)
2、 根據要開啟的檔案建立圖層
3、 將圖層加入當前檢視中
在我們的treeview裡單擊檔名時,呼叫openfile()函式,micaps即可在當前檢視中開啟顯示資料。
有了這兩個函式,就可以發揮想象力,做出更加好用的資料檢索視窗來。
好了,編譯好後,執行micaps,左邊的已經有了我們新山寨出來的資料檢索浮動視窗:
做了新的資料檢索浮動視窗,如何讓替換掉micaps預設的資料視窗呢?很簡單,看micaps3.2\data\layouts目錄下,各種布局定義檔案,修改預設布局檔案,替換一下就行了。如果你想讓兩個資料檢索視窗並存,也沒問題,新增一項就行。布局檔案是xml格式,當然它也是sharpdevelop定義的,sharpdevelop本身自帶了布局編輯儲存功能,被micaps去掉了,你可以在sharpdevelop中編輯對照修改。
Micaps3 2二次開發例項教程 10
檢視是什麼?在micaps中,就是地圖那塊區域,為什麼不叫直接叫地圖呢?因為在sharpdevelop框架中,這塊地方不僅可以顯示地圖,還可以顯示其它東東,地圖只是檢視的一種,可以是個word文件 網頁等等,甚至可以做個遊戲嵌進去,是不是很有 力?本節將給micaps增加記寫字板檢視。建立新檢視,首...
Micaps3 2二次開發例項教程 13
micaps的主選單使用者是可以根據需要編輯的,但micaps的各類資料選單專案極多,2000多行,手工編輯會累死人的。由於在sharpdevelop的架構中,主選單是由addin檔案定義的,均無法動態生成選單項,所以micaps開發人員編寫了 選單文字編輯 軟體來生成addins datashor...
Micaps3 2二次開發例項教程 14
第十四節 例項十 重新編寫micaps3.2.exe sharpdevelop micaps啟動原始碼分析 通過前幾節的折騰,我們已經將micaps的主要機理摸的差不多了,你甚至已經感到可以將micaps重做了 其實不然,這些開發根本沒有涉及到micaps的核心 地圖 這一節我們就將它折騰到底,重新...