本文整理匯總了C#中CancelTrackerClass.Reset方法的典型用法代碼示例。如果您正苦於以下問題:C# CancelTrackerClass.Reset方法的具體用法?C# CancelTrackerClass.Reset怎麽用?C# CancelTrackerClass.Reset使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類CancelTrackerClass
的用法示例。
在下文中一共展示了CancelTrackerClass.Reset方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。
示例1: FlashGeometry
///<summary>Flash geometry on the display.</summary>
///<param name="geometry"> The input IGeometry to flash. Supported geometry types are GeometryBag, Polygon, Polyline, Point and Multipoint.</param>
///<param name="screenDisplay">An IScreenDisplay reference</param>
///<param name="delay">An integer that is the time in milliseconds to wait.</param>
public static void FlashGeometry(IGeometry geometry, IScreenDisplay screenDisplay, int delay, int times)
{
if (geometry == null || screenDisplay == null)
{
return;
}
bool continueFlashing = true;
using (ComReleaser comReleaser = new ComReleaser())
{
ITrackCancel cancelTracker = new CancelTrackerClass();
comReleaser.ManageLifetime(cancelTracker);
screenDisplay.CancelTracker = cancelTracker;
short cacheID = screenDisplay.AddCache();
int cacheMemDC = screenDisplay.get_CacheMemDC(cacheID);
IRgbColor fillColor = new RgbColorClass();
comReleaser.ManageLifetime(fillColor);
fillColor.Green = 128;
IRgbColor lineColor = new RgbColorClass();
comReleaser.ManageLifetime(lineColor);
screenDisplay.StartDrawing(cacheMemDC, cacheID);
DrawGeometry(geometry, fillColor, lineColor, (IDisplay)screenDisplay, cancelTracker);
ESRI.ArcGIS.esriSystem.tagRECT RECT = new tagRECT();
screenDisplay.FinishDrawing();
for (int j = 0; j < times; j++)
{
if (continueFlashing == true)
{
screenDisplay.DrawCache(screenDisplay.hDC, cacheID, ref RECT, ref RECT);
if (delay > 0)
{
System.Threading.Thread.Sleep(delay);
screenDisplay.Invalidate(null, true, cacheID);
screenDisplay.UpdateWindow();
System.Threading.Thread.Sleep(delay);
}
}
}
//---------------------------------------------------------------------
screenDisplay.RemoveCache(cacheID);
cancelTracker.Reset();
}
}
示例2: ExportActiveView
//輸出當前地圖至指定的文件
public static void ExportActiveView(IActiveView pView, Size outRect, string outPath)
{
try
{
//參數檢查
if (pView == null)
{
throw new Exception("輸入參數錯誤,無法生成圖片文件!");
}
//根據給定的文件擴展名,來決定生成不同類型的對象
ESRI.ArcGIS.Output.IExport export = null;
if (outPath.EndsWith(".jpg", StringComparison.OrdinalIgnoreCase))
{
export = new ESRI.ArcGIS.Output.ExportJPEGClass();
}
else if (outPath.EndsWith(".tiff", StringComparison.OrdinalIgnoreCase))
{
export = new ESRI.ArcGIS.Output.ExportTIFFClass();
}
else if (outPath.EndsWith(".bmp", StringComparison.OrdinalIgnoreCase))
{
export = new ESRI.ArcGIS.Output.ExportBMPClass();
}
else if (outPath.EndsWith(".emf", StringComparison.OrdinalIgnoreCase))
{
export = new ESRI.ArcGIS.Output.ExportEMFClass();
}
else if (outPath.EndsWith(".png", StringComparison.OrdinalIgnoreCase))
{
export = new ESRI.ArcGIS.Output.ExportPNGClass();
}
else if (outPath.EndsWith(".gif", StringComparison.OrdinalIgnoreCase))
{
export = new ESRI.ArcGIS.Output.ExportGIFClass();
}
SetOutputQuality(pView, 1);
export.ExportFileName = outPath;
IEnvelope pEnvelope = pView.Extent;
//導出參數
export.Resolution = 300;
tagRECT exportRect = new tagRECT();
exportRect.left = exportRect.top = 0;
exportRect.right = outRect.Width;
exportRect.bottom = (int)(exportRect.right * pEnvelope.Height / pEnvelope.Width);
ESRI.ArcGIS.Geometry.IEnvelope envelope = new ESRI.ArcGIS.Geometry.EnvelopeClass();
//輸出範圍
envelope.PutCoords(exportRect.left, exportRect.top, exportRect.right, exportRect.bottom);
export.PixelBounds = envelope;
//可用於取消操作
ITrackCancel pCancel = new CancelTrackerClass();
export.TrackCancel = pCancel;
pCancel.Reset();
//點擊ESC鍵時,中止轉出
pCancel.CancelOnKeyPress = true;
pCancel.CancelOnClick = false;
pCancel.ProcessMessages = true;
//獲取handle
System.Int32 hDC = export.StartExporting();
//開始轉出
pView.Output(hDC, (System.Int32)export.Resolution, ref exportRect, pEnvelope, pCancel);
bool bContinue = pCancel.Continue();
//捕獲是否繼續
if (bContinue)
{
export.FinishExporting();
export.Cleanup();
}
else
{
export.Cleanup();
}
bContinue = pCancel.Continue();
}
catch (Exception e)
{
//錯誤信息提示
}
}