摘要: 一个完整的slb文件由如下部分构成:sld的头部格式:共32 bytesAutoCAD Slide Library 1.0" CR LF ^Z NUL NUL NUL NULslb内包含的一个或多个sld文件的入口,36字节一组:One or more slide directory entries (36 bytes each)一个或者多个sld文件的内容,长度可变:One or more slides (variable length)sld文件的入口的格式:Slide directory entries have the following format:slide名(32字节 阅读全文
posted @ 2012-08-17 21:31 Cad人生 阅读(2503) 评论(0) 推荐(0) 编辑
摘要: 用c#模仿了一遍,实现了如下功能:1、显示启动屏幕(用自定义的启动屏代替 AutoCAD 的启动屏);2、启动 AutoCAD;3、自动加载其他“你的软件包”相关的若干个 dll,arx,lisp等 程序;4、初始化与发行软件相匹配的 AutoCAD 环境参数变量;5、退出启动屏幕,将控制权限移交给 AutoCAD。关键在于如何检测cad已经启动完毕,及时关闭启动屏。 关键语句IntPtr cadPtr =MainForm.hwnd_CAD ; try { BringWindowToTop (cadPtr ); if (IsW... 阅读全文
posted @ 2012-08-16 23:15 Cad人生 阅读(922) 评论(0) 推荐(1) 编辑
摘要: 原因是序列化时把序列化类的命名空间等信息保存了,但应用程序和类库的命名空间可能是不一样的,所以提示找不到程序集。解决方法如下:1.将dll加入强名称,注册到全局程序集缓存中2.在反序列化使用的IFormatter 对象加入Binder 属性,使其获取要反序列化的对象所在的程序集,示例如下:12345678910111213141516public void DeSerialize( byte [] data, int offset) { IFormatter formatter = new BinaryFormatter(); formatter.Binder = new UBinder(); 阅读全文
posted @ 2012-08-16 19:04 Cad人生 阅读(533) 评论(0) 推荐(1) 编辑
摘要: C#中利用委托实现多线程跨线程操作- 张小鱼 2010-10-22 08:38在使用VS2005的时候,如果你从非创建这个控件的线程中访问这个控件或者操作这个控件的话就会抛出这个异常。这是微软为了保证线程安全以及提高代码的效率所做的改进,但是也给大家带来很多不便。其实解决这个问题有两种方法:一,是通过设置System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;在你的程序初始化的时候设置了这个属性,而且在你的控件中使用的都是微软Framework类库中的控件的话,系统就不会再抛出你上面所说的这个错误了。二,就是委托 阅读全文
posted @ 2012-03-30 19:02 Cad人生 阅读(23088) 评论(4) 推荐(0) 编辑
摘要: 当用户焦点离开TreeView时,TreeView选中节点仍然高亮,但是颜色太浅,几乎看不出来。这里重写一下DrawMode();可以控制选中节点颜色。TreeView.HideSelection = False;可让选中节点保持高亮。参考:http://msdn.microsoft.com/zh-cn/library/system.windows.forms.treeview.hideselection(VS.80).aspxpublic FrmMain(){ InitializeComponent(); treeView1.HideSelection = False; /... 阅读全文
posted @ 2012-03-30 19:01 Cad人生 阅读(2599) 评论(1) 推荐(1) 编辑
摘要: http://through-the-interface.typepad.com/through_the_interface/2010/05/adding-keyword-handling-to-autocad-nets-getselection.html 阅读全文
posted @ 2012-03-07 23:08 Cad人生 阅读(149) 评论(0) 推荐(0) 编辑
摘要: c#虽然内置垃圾回收机制,但是并不能解决程序占用内存庞大的问题,如果我们仔细观察任务管理器,我们会发现一个程序如果最小化的时候,它所占用的会骤然减小,这时操作系统会把程序用不到的内存暂时放到虚拟内存中,当我们再把程序最大化时,发现内存并没有完全的从虚拟内存调到内存中来,是因为操作系统的内存管理机制只调用目前需要的,那么剩下的,有可能将来调用,有可能根本没用。实现这个机理用到了一个API函数SetProcessWorkingSetSize(),c#中声明如下: [DllImport("kernel32.dll", EntryPoint = "SetProcessWo 阅读全文
posted @ 2011-11-26 21:02 Cad人生 阅读(4641) 评论(1) 推荐(2) 编辑
摘要: 亮个图:代码简介:这个是绘制节点相关的类,如果大家想要绘制新的形状,可以添加AbsNodeBase的子类,同时实现接口IDrawing这个是绘制线条相关的类,如果大家要绘制新的线条,可以添加AbsLineBase的子类,同时实现接口IDrawing关键代码:其实没有什么关键代码的,就是绘制的时候需要个颜色渐变效果,这是绘制圆形节点的代码:show source 这样就有渐变效果了,看起来立体一些,:-D。如何使用: 解决方案里有实例项目的,:-D。主要工作是创建一个树形结构,其中一个节点(Node类)包括节点本身和其连接父节点的连线(Line类),颜色大小等都可以设置,对,Root节点可以.. 阅读全文
posted @ 2011-11-22 09:11 Cad人生 阅读(740) 评论(0) 推荐(0) 编辑
摘要: 1 btn Button2 chk CheckBox3 ckl CheckedListBox4 cmb ComboBox5 dtp DateTimePicker6 lbl Label7 llb LinkLabel8 lst ListBox9 lvw ListView10 mtx MaskedTextBox11 cdr MonthCalendar12 icn NotifyIcon13 nud NumeircUpDown14 pic PictureBox15 prg ProgressBar16 rdo RadioButton17 rtx RichTextBox18 txt TextBox19 ti 阅读全文
posted @ 2011-11-22 09:10 Cad人生 阅读(388) 评论(0) 推荐(0) 编辑
摘要: “拖延症”这个名词近些年很火,似乎每个人都觉得自己的效率不高,很难集中注意力做好手头的事,那我们究竟该如何提高自己的工作效率呢,大牛来告诉你.肯定有人跟你说过这样的话“你有看电视的那么长时间,都可以用来写一本书了”,不可否认写书肯定比看电视更好的利用了时间,但是这个结论的成立需要一个假设:"时间是可互换的",也就是说看电视的时间可以轻松的用来写书。但是很遗憾,事实并非如此。不同的时间有不同的质量等级。如果我在走向地铁站的路上发现自己的笔记本忘带了,我就很难集中注意力写文章。同样,当你不停的被打断的时候,你也很难集中注意力。这里还有一些心理和情感上的因素,有的时候我心情很好, 阅读全文
posted @ 2011-11-22 09:09 Cad人生 阅读(653) 评论(0) 推荐(0) 编辑