arx创建作用域(于)当前文档全局变量
Posted edata
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了arx创建作用域(于)当前文档全局变量相关的知识,希望对你有一定的参考价值。
普通的全局变量是作用于整个AutoCAD程序中,所有的文档都将能存取,某些时候,我们需要某一个全局变量仅仅在当前文档有效,便于程序之间通信或者变量值记忆。
在高版本的objectARX向导中,已经为我们提供了一个继承类,CDocData,来至AcApDataManager,AcApDataManager来至AcApDocManagerReactor,大概原理是通过反应器,在切换文档的时候,记忆和保存当前的文档内全局变量。
通常情况下,通过向导会创建CDocData.h\\.cpp这两个文件,通过修改这个文件可以定义或扩展操作某些当前文档全局变量。
比如在定义一个CString的变量g_myName
在cpp文件中可以初始化成 “张三”
在命令执行的时候可以通过 DocVars.docData().g_myName 来存取数据
通过这样的方式,我们就 可以存取仅对当前文档有值的全局变量了,如果我们切换文档,那么在新的文档中,又会重新存取这个值,比如你在当前文档,这个值是张三,你又在新的文档中设置的值是李四,那么切换文档之后,每个文档都对应的是你设置的值。虽然都是g_myName这个变量,值都是不一样的。
通过这个原理,我们可以扩展出很多用法,比如两个程序之间传递参数,创建一个选择集,另外一个程序也可以访问者这个选择集。
以上是关于arx创建作用域(于)当前文档全局变量的主要内容,如果未能解决你的问题,请参考以下文章
Python 局部变量global,全局变量local ,非局部变量nonlocal ,Enclosing function locals作用域