使用C 擴充套件VS的帶工具欄的編輯器(翻譯)

2021-09-05 16:11:10 字數 1945 閱讀 3197

介紹

這個例子展示了如何使用乙個包(package)來擴充套件visual studio,使之支援乙個特定檔案型別的編輯器並附帶工具箱支援,在這個例子中我們將實現乙個 .tbx檔案的編輯器以及乙個可用於此文件的工具箱專案。

入門這個例子實現了.tbx檔案的編輯器功能,其內部實際上只是簡單的使用了ricktextbox控制項來編輯文件。這個例子主要還是用來展示編輯器如何與vistual studio工具箱的互動。

這個編輯器使用了svstoolbox服務並實現了ivstoolboxuser介面,以支援於工具箱互動,實現操控工具箱和支援拖動。

在這個編輯器中,支援logviewid_designer邏輯檢視,需要在登錄檔中登記入口資訊以描述這個包支援此字尾。

[hkey_local_machine\software\microsoft\visualstudio\8.0\editors\ ] "displayname"="#106" "package"=""

[hkey_local_machine\software\microsoft\visualstudio\8.0\editors\ \extensions] "addin"=dword:00000032

[hkey_local_machine\software\microsoft\visualstudio\8.0\editors\ \logicalviews] ""=""

其中是指edito***ctory型別的com guid;

指editorpackage的com guid;

指的是 logviewid_designer的值。

這個example.editorwithtoolbox的例子包含乙個intergrationtests的目錄,這個目錄中的測試用例要求你的機器必須安裝vsidetesthost.msi ,這個安裝包將建立 visualstudioteamsystemintegration\test tool extensibility\vsidehostadapter資料夾。

專案檔案

assemblyinfo.cs

包含組裝件的資訊

classdiagram.cd

工程的類描述圖

edito***ctory.cs

實現了ivsedito***ctory介面以建立編輯器的檢視物件

editorpane.cs

實現了editorpane類, 用來容納編輯器 (richtextbox控制項) 並響應編輯器的command命令

editorcontrol.cs

派生自richtextbox.的控制項,用來編輯文字

guidlist.cs

包含了所有的guid定義, 包括package的guid和所有command的guid.

resources.resx

專案的資源檔案. 這些定義將被sampledocvieweditor.vsdir使用.

editorpackage.cs

包含了包的定義,其關於編輯器的attributes定義能夠自動註冊到登錄檔中,他也實現了建立乙個edito***ctory例項,並通知ide (呼叫 ivsregistereditor::registereditor).

templates\tbx.tbx

editorwithtoolbox.vsdir 將使用這個 "tbx"作為例子檔案.

templates\editorwithtoolbox.vsdir

在visual studio的新建對話方塊中,提供模板。

VS自帶工具 dumpbin的使用

有時候我們想檢視乙個exe引用了哪些動態庫,或者我們想看某個動態庫包含哪些介面函式,這個時候可以使用dumpbin.exe工具 1.輸入dumpbin imports calldll.exe檢視它的輸入資訊,可以看到它載入了 dll 2.輸入dumpbin exports dlltest.dll,列...

工具欄的建立

mfc 中工具欄關聯的類 c ctrl c c ctrl c 兩個類的區別 c 和 cstatusbar 都是在 control bars 類中的封裝,而 cstatusbarctrl 和 c ctrl 都是在 controls 類中的封裝。c ctrl 和 cstatusbarctrl 它們只是簡...

解決工具欄中消失了的dev控制項工具欄

有時候會出現這樣一種情況 上次使用的時候工具欄中dev控制項還很正常的顯示,但是下次開啟vs是時候你會發現工具欄中微軟自帶的控制項還乖乖的待在那裡,dev控制項不知道跑哪調皮去啦。這很鬱悶啊,怎麼辦呢?別急,周文王推崇的八卦演繹,天地萬物,相生相剋,下面就是尋找dev藏身之地的途徑。在開始程式裡找到...