EngineでArcMapぽい描画停止する


StartDrawing
DisplayDraw
今週の記事を使って例えば描画停止画面ポイものを作れる。

stopImg
画像はArcMap 文字列 [一時停止] は実装してない

下記コード

if (!this.axMapControl1.Enabled)
{
  this.axMapControl1.Enabled = true;
  this.axMapControl1.ActiveView.Refresh();
  return;
}
this.axMapControl1.Enabled = false;
this.axMapControl1.TrackCancel.Cancel();

IScreenDisplay scDisplay = ((IActiveView)this.axMapControl1.Map).ScreenDisplay;
//表示領域の取得
tagRECT rect = scDisplay.DisplayTransformation.get_DeviceFrame();

scDisplay.StartRecording();
scDisplay.StartDrawing(scDisplay.hDC, Convert.ToInt16(esriScreenCache.esriNoScreenCache));

int h,w;
h = Math.Abs(rect.right - rect.left);
w = Math.Abs(rect.bottom - rect.top);

IntPtr ptr = new IntPtr(scDisplay.hDC);
using (Graphics gra = Graphics.FromHdc(ptr))
using(LinearGradientBrush gb = new LinearGradientBrush(gra.VisibleClipBounds, Color.White, Color.Black,LinearGradientMode.Vertical)) 
{

  gra.FillRectangle(gb, gra.VisibleClipBounds);

}

scDisplay.FinishDrawing();
scDisplay.StopRecording();
カテゴリー: 開発 タグ: パーマリンク