MFC開発ヘルプドキュメント:アウトラインパーサーのXML形式

BCGControlBar  ( "Business Components Gallery ControlBar")は、完全にカスタマイズ可能なオプション(リボン、カスタマイズ可能なツールバー、メニューなど)を備えた専門的に設計されたMicrosoftOfficeおよびMicrosoftVisual Studioの豊富なセットを作成できるMFC拡張ライブラリです。アプリケーションGUIコントロール、チャート、カレンダー、グリッド、エディター、ガントチャート、その他多くのコントロールなど。BCGControlBarライブラリには、完全に設計、テスト、および完全に文書化された500を超えるMFC拡張クラスがあります。当社のコンポーネントはアプリケーションに簡単に統合でき、開発とデバッグの時間を何百も節約できます。

BCGControlBar Pro for MFCv31.0公式バージョンのダウンロード

この記事では、CBCGPOutlineParserで使用されるXMLファイル形式と編集コントロールの自動概要機能を紹介します。XMLパーサーはCBCGPEditCtrl :: LoadOutlineParserXMLSettingsを呼び出すことによって呼び出さます。

アウトラインパーサーに使用される構造は次のとおりです。

 

<SETTINGS> 
< 
OUTLINE_DATA > <IgnoreOneLineBlocks> </ IgnoreOneLineBlocks> 
<EscapeSequences> 
<EscapeSequence> </ EscapeSequence> 
</ EscapeSequences> 

<BLOCKS> 
<BLOCK> 
<Start> </ Start> 
<End> </ End> 
<ReplaceString> </ ReplaceString> 
<AllowNestedBlocks> </ AllowNestedBlocks> 
<Ignore> </ Ignore> 
</ BLOCK> 
</ BLOCKS> 
</ OUTLINE_DATA> 
</ SETTINGS>

 

メインの「SETTINGS」ラベルを除いて、他の必須のラベルはありません。

「OUTLINE_DATA」タグは、一般的なアウトラインパーサー設定を定義します。

  • 「IgnoreOneLineBlocks」タグは、編集コントロールがラインブロックを折りたたみ可能として扱うかどうかを定義し、デフォルトは「False」です。
  • 「EscapeSequences」タグは、エスケープシーケンスのリストを定義します。
  • 「EscapeSequence」タグは、単一のエスケープシーケンスを表します。
  • 「BLOCKS」タグは、言語の文法定義に使用されます。各ブロックは、ルールと、アウトラインパーサーがアウトラインの折りたたみ可能領域を見つける方法を指定します。このメソッドは、同じ言語構文ブロックの自動アウトライン領域のセットを定義する必要がある場合に役立ちます。各ブロックについて、XMLパーサーはCBCGPOutlineParser :: AddBlockTypeを呼び出します
  • 「BLOCK」マークは単一のブロックを表します

C ++のデフォルトのXML設定:

 

<SETTINGS> 
< 
OUTLINE_DATA > <IgnoreOneLineBlocks> True </ IgnoreOneLineBlocks> 
<IncludeSpaceLines> True </ IncludeSpaceLines> 
<EscapeSequences> 
<EscapeSequence> \\\ "</ EscapeSequence> 
</ EscapeSequences> 
<BLOCKS> 
<BLOCK> 
<Start> \ \\ "</ Start> 
<End> </ End> 
<ReplaceString> </ ReplaceString> 
<AllowNestedBlocks> False </ AllowNestedBlocks> 
<Ignore> True </ Ignore> 
</ BLOCK> 

<BLOCK> 
<Start> \" < / Start> 
<End> \ "</ End> 
<ReplaceString> \" \ "</ ReplaceString>
<AllowNestedBlocks> False </ AllowNestedBlocks> 
<Ignore> True </ Ignore> 
</ BLOCK> 

<BLOCK> 
<Start> {</ Start>
<End>} </ End> 
<ReplaceString> .. </ ReplaceString> 
<KEYWORDS> 
<Keyword> else </ Keyword> 
<Keyword> struct </ Keyword> 
<Keyword> enum </ Keyword> 
<Keyword> switch </キーワード> 
<キーワード>キャッチ</キーワード> 
<キーワード>試行</キーワード> 
<キーワード> for </キーワード> 
<キーワード>演算子</キーワード> 
<キーワード>クラス</キーワード> 
<キーワード> if </ Keyword> 
<Keyword> union </キーワード> 
<Keyword>実行</ Keyword> 
<Keyword> while </ Keyword> 
<Keyword>名前空間</ Keyword> 
</ KEYWORDS> 
</ BLOCK>

<BLOCK> 
<Start> {</ Start> 
<End>} </ End> 
<ReplaceString> ... </ ReplaceString> 
</ BLOCK> 

<BLOCK>
<Start> // </ Start> 
<終了> \ n </終了>
<ReplaceString> / ** / </ ReplaceString> 
<AllowNestedBlocks> False </ AllowNestedBlocks> 
</ BLOCK> 

<BLOCK> 
<Start> / * </ Start> 
<End> * / </ End> 
<ReplaceString> / ** / </ ReplaceString> 
<AllowNestedBlocks> False </ AllowNestedBlocks> 
</ BLOCK> 
</ BLOCKS> 
</ OUTLINE_DATA> 
</ SETTINGS>

おすすめ

転載: blog.csdn.net/AABBbaby/article/details/111942341