// http://forums.esri.com/Thread.asp?c=159&f=1707&t=268556 private void axMapControl1_OnMouseDown(object sender, IMapControlEvents2_OnMouseDownEvent e) { IRubberBand pRubberPoly = new ESRI.ArcGIS.Display.RubberEnvelopeClass(); IEnvelope myenv = pRubberPoly.TrackNew(this.axMapControl1.ActiveView.ScreenDisplay, null).Envelope ; double yokoratio; double tateratio; int w; int h; yokoratio = myenv.Width/this.axMapControl1.ActiveView.Extent.Width; tateratio = myenv.Height/this.axMapControl1.ActiveView.Extent.Height; w = (int)(axMapControl1.ClientSize.Width * yokoratio); h = (int)(axMapControl1.ClientSize.Height * tateratio); IActiveView activeView = this.axMapControl1.ActiveView; Bitmap bitmap = new Bitmap(w,h); Graphics graphics = Graphics.FromImage(bitmap); ESRI.ArcGIS.Display.tagRECT rect = new ESRI.ArcGIS.Display.tagRECT(); ESRI.ArcGIS.Display.tagRECT nowrect = new ESRI.ArcGIS.Display.tagRECT(); rect.left = 0; rect.top = 0; rect.bottom = bitmap.Height; rect.right = bitmap.Width; IEnvelope myenv2 = activeView.Extent; myenv2.Expand(0.5, 0.5, true); IntPtr hDC = graphics.GetHdc(); activeView.Output(hDC.ToInt32(), 0, ref rect, myenv, null); graphics.ReleaseHdc(hDC); graphics.Dispose(); Clipboard.SetImage(bitmap); }
クリップボードにマップのグラフィックをコピー
2016/9/1 (木)