双击CAD对象(具有扩展数据),显示自定义对话框实现方法

转自:Cad人生

链接:http://www.cnblogs.com/cadlife/p/3463337.html

题目:双击CAD对象,显示自定义对话框实现方法

内容粘贴如下:

 主要是绑定两个事件:一个是 Application.DocumentManager.DocumentLockModeChanged -----  该事件为文档锁定事件,一直在被监测中                   一个是 Application.BeginDoubleClick                        -----  该事件为应用程序的双击事件
 1     class TlsApplication : IExtensionApplication //程序初始化,在加载dll时,cad会自动捕捉并运行该过程
  3     {
  5         void IExtensionApplication.Initialize()
  7         {
  9             TTest.Start();
 11         }
 13         void IExtensionApplication.Terminate()
 15         {
 17         }
 19     }
 20
 21     class TTest
 23     {
 25         static bool m_Veto = false;
 27         public static void Start()
 29         {
 31             Application.DocumentManager.DocumentLockModeChanged += new DocumentLockModeChangedEventHandler(vetoCommand);
 33             Application.BeginDoubleClick += new BeginDoubleClickEventHandler(beginDoubleClick);
 35         }
 37         static void beginDoubleClick(object sender, BeginDoubleClickEventArgs e)
 39         {
 41             Document doc = Application.DocumentManager.MdiActiveDocument;
 43             Editor ed = doc.Editor;
 45             PromptSelectionResult res = ed.SelectImplied();
 47             SelectionSet ss = res.Value;
 49             if (ss != null)
 51             {
 53                 if (ss.Count == 1)
 55                 {
 57                     using (Transaction tr = doc.TransactionManager.StartTransaction())
 59                     {
 61                         Line line = tr.GetObject(ss[0].ObjectId, OpenMode.ForRead) as Line;
 63                         if (line != null)
 65                         {
 67                             ResultBuffer rb = line.GetXDataForApplication("MyApp"); //提取对象的扩展数据
 69                             if (rb != null)
 71                             {
 73                                 m_Veto = true;
 75                             }
 77                         }
 79                     }
 81                 }
 83             }
 85         }
 86
 87         static void vetoCommand(object sender, DocumentLockModeChangedEventArgs e)
 89         {
 91             if (e.GlobalCommandName.ToLower() == "properties") //判断是否是调用属性对话框
 93             {
 95                 if (m_Veto)
 97                 {
 99                     e.Veto();
103                     Application.ShowAlertDialog("hello"); //在此处可以添加自定义对话框
105                     m_Veto = false;
107                 }
109             }
111         }
113     }

原文地址:https://www.cnblogs.com/whlkx/p/8678779.html

时间: 2024-08-29 13:14:49

双击CAD对象(具有扩展数据),显示自定义对话框实现方法的相关文章

CAD在网页中绘图,并为新绘的对象写扩展数据和读取扩展数据

在网页中绘图,并为新绘的对象写扩展数据和读取扩展数据.下面帮助的完整例子,在控件安装目录的 Sample\Ie\iedemo.htm 中. 主要用到函数说明: _DMxDrawX::InsertBlock 向数据库中插入一个图块,DWG图块文件可以是本地文件,也可以是网络文件.详细说明如下:函数成功返回1,失败返回0. 参数 说明 BSTR pszDwgFileName 图块定义的dwg 文件,支持http://开头的网络路径 BSTR pszBlockName 新插入的图块名 _DMxDraw

ecshop二次开发系统缓存优化之扩展数据缓存的必要性与方法

1.扩展数据缓存的必要性 大家都知道ecshop系统使用的是静态模板缓存,在后台可以设置静态模板的缓存时间,只要缓存不过期,用户访问页面就相当于访问静态页面,速度可想而知,看似非常完美,但是ecshop 有一个方法被滥用了,那就是 clear_cache_files() ,该方法会把整个系统的静态模板都清除掉,商家或者系统后台管理员只要在后台修改一下商品,或者修改个其他的东西,就会调用该方法将所有静态缓存都清掉,所以如果有商家频繁的修改商品,那么静态模板缓存其实是形同虚设,系统每次都会重新执行动

在WebView中加载HTML页面时显示进度对话框的方法

webView.setWebViewClient(new WebViewClient(){            ProgressDialog prDialog;            @Override            public void onPageStarted(WebView view, String url, Bitmap favicon) {                prDialog = ProgressDialog.show(BrowseNewsActivity.t

Android自定义组件系列【13】——Android自定义对话框如此简单

在我们的日常项目中很多地方会用到对话框,但是Android系统为我们提供的对话框样子和我们精心设计的界面很不协调,在这种情况下我们想很自由的定义对话框,或者有的时候我们的对话框是一个图片,没有标题和按钮,例如这样的一系列需求,这一篇文章我们来给大家介绍一下如何像使用Activity一样来自定义我们的对话框. 一般自定义对话框有下面几种办法: 1.重写Dialog来实现. 2.获取Dialog的Window对象实现. 3.使用WindowManager来实现. 4.使用DialogTheme来实现

Android开发学习笔记-自定义对话框

系统默认的对话框只能显示简单的标题内容以及按钮,而如果想要多现实其他内容则就需要自定义对话框,下面是自定义对话框的方法. 1.先定义对话框的模版 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="300d

Dialog主题Activity实现自定义对话框效果

想必大家都用过Dialog主题的Activity吧,用它来显示自定义对话框效果绝对是一个非常不错的选择. 即把activity交互界面以Dialog的形式展现出来,Dialog主题的Activity大小将以内容的宽高来决定 <activity android:name=”MainActivity” android:theme=”@android:style/Theme.Dialog”> </activity> 可以看到设置为Theme.Dialog主题的activity显示效果,

Android项目实战(七):Dialog主题Activity实现自定义对话框效果

原文:Android项目实战(七):Dialog主题Activity实现自定义对话框效果 想必大家都用过Dialog主题的Activity吧,用它来显示自定义对话框效果绝对是一个非常不错的选择. 即把activity交互界面以Dialog的形式展现出来,Dialog主题的Activity大小将以内容的宽高来决定 <activity android:name=”MainActivity” android:theme=”@android:style/Theme.Dialog”> </acti

【OC学习-27】对象的归档以及解归档——标准数据和自定义数据的例子

对象归档?就是把对象的数据保存成文件实现数据的加密(即在文档中不是明文显示)和永久储存. 需要使用时,则从文件中恢复即可. (1)标准的数据 //main.m文件 #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { //把一个数组进行归档 //创建一个文件路径 NSString *homePath=NSHomeDirectory(); NSString *f

CAD对象显示顺序调整后置

移动选取的对象到当前图形文件中所有对象的最下面显示. 1.单击菜单栏,“编辑->后置”. 2.单击编辑工具栏|“后置”按钮. 3.在命令行中输入DrawOrderButtomost,按回车键. 执行命令后,命令行将显示如下信息: 命令: Mx_DrawOrderButtomost 选择对象: 原文地址:https://www.cnblogs.com/yzy0224/p/11270282.html