テキスト描画


COM参照解放の秘訣
⇒新しいCOMオブジェクトを生成しないのが一番。

例を出すのが難しいが、画面4隅にテキストを描画するにしても1インスタンスで済む
使い回しと解放を厳密にが基本

using (ComReleaser com = new ComReleaser())
{
  IActiveView actView = (IActiveView)this.axMapControl1.Map;
  IScreenDisplay scDisplay = actView.ScreenDisplay;

  scDisplay.StartDrawing(scDisplay.hDC, (short)esriScreenCache.esriNoScreenCache);
  try
  {
    ITextSymbol txtSymbol = new TextSymbolClass();
    com.ManageLifetime(txtSymbol);
    ISymbol sym = (ISymbol)txtSymbol;

    sym.SetupDC(scDisplay.hDC, scDisplay.DisplayTransformation);

    txtSymbol.VerticalAlignment = esriTextVerticalAlignment.esriTVATop;
    txtSymbol.Text = "テスト左上";

    sym.Draw(actView.Extent.UpperLeft);

    txtSymbol.VerticalAlignment = esriTextVerticalAlignment.esriTVABottom;
    txtSymbol.Text = "テスト左下";

    sym.Draw(actView.Extent.LowerLeft);

    sym.ResetDC();

  }
  finally
  {
    scDisplay.FinishDrawing();
  }//end try
}//end com
カテゴリー: 開発 タグ: パーマリンク