- ベストアンサー
VisualStudio2005 C++ クラスの追加について
- プロジェクトでクラスを追加する際、ファイルコメントを同時に出力したいです。
- クラス作成ウィザードの拡張やクラスのテンプレートの使用方法について教えてください。
- VisualStudio2005におけるC++でのクラスの追加方法について知りたいです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
本格的にウィザードを仕立てるのであれば カスタムウィザードについて調べてみてください IDEのマクロでやるなら マクロで ソリューションやプロジェクト、プロジェクトアイテムなどのコレクションから当該ウィンドウを特定します 取得できたら Selecttionプロパティを使って コメント部分を作成します 取得する場合そのヘッダファイルなどを編集状態にしておいてください 以下にサンプルコードを示します Sub Macro01() Dim oDTE As EnvDTE.DTE = DTE Dim oSol As Solution = oDTE.Solution ' 最初のプロジェクトを選択 ' 任意のプロジェクトを取得するのであれば ' GetProjtItem関数を参考にしてください Dim oProj As Project = oSol.Projects.Item(1) ' 2番目の引数に 取得したいファイル名を指示します Dim oItem As ProjectItem = GetProjItem(oProj.ProjectItems, "MySample.h", 0) Dim oSel As TextSelection = CType(oItem.Document.Selection, TextSelection) oSel.StartOfDocument() oSel.SelectLine() ' 先頭行が#pragma onceならば コメントを追加 If oSel.Text = "#pragma once" & vbCrLf Then oSel.StartOfDocument() oSel.NewLine() oSel.LineUp() ' テストコードなので固定文字列で追加しています ' 必要に応じて InputBoxなどを使って文字列を変更してください oSel.Text = "/*************************************" & vbCrLf & _ "* CMySampleクラスの宣言" & vbCrLf & _ "* @author: " & vbCrLf & _ "* @see: " & vbCrLf & _ "*************************************/" & vbCrLf End If End Sub Function GetProjItem(ByVal oProjcts As ProjectItems, ByVal sName As String, ByVal level As Integer) As ProjectItem Dim oItem As ProjectItem Dim subProj As ProjectItems ' 与えられたコレクションを検索 For Each oItem In oProjcts ' 検索中のアイテムが 引数と一致するか検査 If oItem.Name = sName Then ' 発見されたアイテム Return oItem Else ' もし違うのであれば その項目の子アイテムを再帰で探索 subProj = oItem.ProjectItems If subProj.Count Then Dim oItem2 As ProjectItem oItem2 = GetProjItem(subProj, sName, level + 1) ' 子アイテムに目的のアイテムが見つかった場合はこれを返す If Not oItem2 Is Nothing Then Return oItem2 End If End If End If Next Return Nothing End Function # 字下げは全角スペースを使用しています 半角スペースなどに置換してください
お礼
お早い回答ありがとうございます。 "カスタムウィザード"といわれているのですね。 言葉の糸口が見つかれば、何とかなりそうです。 スクリプトの例も参考になりそうです。 ありがとうございました。