zoukankan      html  css  js  c++  java
  • autocad.net回退undo与命令行回应cmdecho完美结合

    #if AC2013
    
        [DllImport("accore.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "acedCmd")]
    
    #else
    
        [DllImport("acad.exe", CallingConvention = CallingConvention.Cdecl, EntryPoint = "acedCmd")]
    
    #endif
    
        private static extern int acedCmd(System.IntPtr vlist);
    
        [CommandMethod("ClearUndoStack")]
    
        public void ClearUndoStack()
    
        {
    
          // remember the cmdecho
    
          short cmdecho = (short)Application.GetSystemVariable("CMDECHO");
    
          // turn it off
    
          Application.SetSystemVariable("CMDECHO", 0);
    
     
    
          short undoCtl = (short)Application.GetSystemVariable("UNDOCTL");
    
          bool isOn = (undoCtl & 1) == 1;
    
          if (!isOn)
    
            return;
    
     
    
          bool isOneCmd = (undoCtl & 2) == 2;
    
          bool isAuto = (undoCtl & 4) == 4;
    
     
    
          ResultBuffer rb = new ResultBuffer();
    
          // RTSTR = 5005
    
          rb.Add(new TypedValue(5005, "_.UNDO"));
    
          rb.Add(new TypedValue(5005, "_Control"));
    
          rb.Add(new TypedValue(5005, "_None"));
    
          rb.Add(new TypedValue(5005, "_.UNDO"));
    
     
    
          if (isOneCmd)
    
            rb.Add(new TypedValue(5005, "_One"));
    
          else
    
          {
    
            rb.Add(new TypedValue(5005, "_All"));
    
            if (!isAuto)
    
            {
    
              rb.Add(new TypedValue(5005, "_.UNDO"));
    
              rb.Add(new TypedValue(5005, "_Auto"));
    
              rb.Add(new TypedValue(5005, "_Off"));
    
            }
    
          }
    
     
    
          // start the insert command
    
          acedCmd(rb.UnmanagedObject);
    
          // now restore cmdecho
    
          Application.SetSystemVariable("CMDECHO", cmdecho);
    
        }
  • 相关阅读:
    作业5

    Linux系统管理4
    作业
    递归训练1:在两个长度相等的排序数组中找到上中位数
    LeetCode:面试题 08.05. 递归乘法
    LeetCode:面试题 08.06. 汉诺塔问题
    LeetCode:22. 括号生成
    如何仅用递归函数和栈操作逆序一个栈
    LeetCode:面试题 03.02. 栈的最小值
  • 原文地址:https://www.cnblogs.com/swtool/p/SWTOOL_00017.html
Copyright © 2011-2022 走看看