- static GripOverrule* gripOverrule = NULL;
- //-----------------------------------------------------------------------------
- //----- ObjectARX EntryPoint
- class CArxResizeApp : public AcRxArxApp {
- public:
- CArxResizeApp () : AcRxArxApp () {}
- virtual AcRx::AppRetCode On_kInitAppMsg (void *pkt) {
- // TODO: Load dependencies here
- // You *must* call On_kInitAppMsg here
- AcRx::AppRetCode retCode =AcRxArxApp::On_kInitAppMsg (pkt) ;
-
- // TODO: Add your initialization code here
- gripOverrule = new GripOverrule();
- return (retCode) ;
- }
- virtual AcRx::AppRetCode On_kUnloadAppMsg (void *pkt) {
- // TODO: Add your code here
- // You *must* call On_kUnloadAppMsg here
- AcRx::AppRetCode retCode =AcRxArxApp::On_kUnloadAppMsg (pkt) ;
- // TODO: Unload dependencies here
- delete gripOverrule;
- return (retCode) ;
- }
- virtual void RegisterServerComponents () {
- }
- static void ArxResize_doit(void)
- {
- MessageBox(NULL, (LPCWSTR)L"doit", (LPCWSTR)"", MB_OK);
- GripOverrule::setIsOverruling(Adesk::kTrue);
- GripOverrule::addOverrule(AcDbPolyline::desc(), gripOverrule, false);
-
- }
- static void ArxResize_undoit(void)
- {
- MessageBox(NULL, (LPCWSTR)L"undoit", (LPCWSTR)"", MB_OK);
- GripOverrule::setIsOverruling(false);
- GripOverrule::removeOverrule(AcDbPolyline::desc(), gripOverrule);
- }
- } ;
- //-----------------------------------------------------------------------------
- IMPLEMENT_ARX_ENTRYPOINT(CArxResizeApp)
- ACED_ARXCOMMAND_ENTRY_AUTO(CArxResizeApp, ArxResize, _doit, doit, ACRX_CMD_TRANSPARENT, NULL);
- ACED_ARXCOMMAND_ENTRY_AUTO(CArxResizeApp, ArxResize, _undoit, undoit, ACRX_CMD_TRANSPARENT, NULL);
显示了夹点,但是当我尝试移动它时,立即出现访问冲突异常。试图读取的地址与通过
AcDbGripData::setAppData(void *)
存储的值相同,所以我认为我只是弄乱了指针,但我找到的关于
AcDbGripData
的示例使用了相同的方式(不过这些都是使用
AcDbEntity::getgripdates()
,而不是重写)。当我使用类而不是单值时,结果相同:
- MyAppData* mad = new MyAppData();
- mad->val = 123456;
- g1->setAppData((void*)mad);
这会不会是因为没有设置
AcDbGripData::m _ pappdata class
而导致的samohow?
使用
AcDbGripOverrule::getgripfoints()
和
AcDbEntity::getgripfoints()
有区别吗?
或者最简单的方法是——有没有使用“抓地力否决”的例子?
或者我做错了什么?
谢谢。
本帖以下内容被隐藏保护;需要你回复后,才能看到!
游客,如果您要查看本帖隐藏内容请
回复