• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VisualStudio2005 C++ クラスの追加について)

VisualStudio2005 C++ クラスの追加について

このQ&Aのポイント
  • プロジェクトでクラスを追加する際、ファイルコメントを同時に出力したいです。
  • クラス作成ウィザードの拡張やクラスのテンプレートの使用方法について教えてください。
  • VisualStudio2005におけるC++でのクラスの追加方法について知りたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.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 # 字下げは全角スペースを使用しています 半角スペースなどに置換してください

SafeGuard
質問者

お礼

お早い回答ありがとうございます。 "カスタムウィザード"といわれているのですね。 言葉の糸口が見つかれば、何とかなりそうです。 スクリプトの例も参考になりそうです。 ありがとうございました。

関連するQ&A