ZRX开发手册

全局接口函数说明:

UINT zdsw_excuteUICommand(

UICOMMANDPROC pfnUICMDProc, //用户定义回调函数指针 LPVOID pParam );

参 数:

pfnUICMDProc——用户自定义函数指针,用户必须把创建、修改、显示界面元素的代码写在该函数内。

pParam——用户自定义参数,该参数用户可由用户根据需要自由传值,最终会作为指针pfnUICMDProc所指向的函数的输入参数。 返回值:

如果pfnUICMDProc为空或调用过程发生错误,返回值为-1,否则返回pfnUICMDProc所指向回调函数执行的结果状态。

//用户自定义参数

回调函数定义说明:

可停靠面板定义的回调函数格式如下:

UINT CallBackFunc(LPVOID pParam) {

//To Do: }

return -1;

代码示例:

// 定义可停靠窗口功能类,并实现 class CSCRMenu : public CDialogBar {

DECLARE_DYNAMIC(CSCRMenu)

public:

CSCRMenu();

virtual ~CSCRMenu();

virtual void OnUpdateCmdUI(CFrameWnd* pTarget, BOOL bDisableIfNoHndler);

public:

protected:

CComboBox m_LayerComboBox; BOOL ScreenMenu();

CListCtrl m_EntityInfoList;

protected:

void InitDCEditButton(); void InitLayerComboBox();

protected:

DECLARE_MESSAGE_MAP()

public: };

//定义用户自定义回调函数:

UINT CreateScreenMenu(LPVOID pParam) { }

// 转接功能函数到ZWCAD主UI线程上执行 void CreatSCRMenu() { }

zdsw_executeUICommand(CreateScreenMenu, &m_SCRMenu); if(pParam) { }

return -1;

return ((CSCRMenu*)pParam)->ScreenMenu(); afx_msg void OnBtnMessagebox(); afx_msg void OnBtnLine();

afx_msg LRESULT OnInitDialog(WPARAM wParam, LPARAM lParam); afx_msg void OnBtnDCEdit(); afx_msg void OnBtnGetObjInfo(); afx_msg void OnBtnCloseupLayer();

注意事项:

1)创建界面的所有元素必须在特定函数内实现,并以该函数指针作为输入参数,通过使用全局接口函数zdsw_ExecuteUICommand调用来达到功能上的实现,切记不能直接在ZRX命令里创建用户界面;

2)在用户消息响应代码里,需要修改图纸数据的操作时,必须调用zcedPostCommand发送ZRX命令名以触发ZRX命令函数的方式进行。由于从发送ZRX命令名到执行ZRX命令不是即时的,所以调用zcedPostCommand之后不宜编写其它逻辑代码。

3) 调用此接口创建用户界面的二次开发应用程序必须为MFC扩展DLL,否则无法正常创

建用户界面。

全局函数应用

ZRX除了提供了一些应用功能类接口,同时也提供了各种应用的全局函数,限于章节,不在此一一阐述,详细请参见 《附录A:》。

ZZR移植 RX植指X移指南南 本指南主要讲述,如何从原在AutoCAD上运行的ObjectARX的应用程序移植到ZWCAD上,并且能够正常、正确地运行。在前面《ZRX介绍》章节里,我们已经介绍了ZRX在代码上已经作到能够很好地兼容ARX代码,因此在ARX程序在向ZRX移植时,几乎不用修改用户代码,通过修改工程配置,重新编译链接,便可以转接到ZWCAD上来运行,以下是针对不同版本间移植的步骤。

从ObjectARX 2006移植到ZRX

移植的步骤:

1)首先用Visual Studio 2008打开该工程,按提示信息提示将原工程升级为vc9工程。 2)在工程属性对话框的C/C++-->General(常规)-->Additional(附加包含目录)中,修改头文件包含路径为ZRXSDK\\arxport的对应的目录,删掉原先的头文件包含路径。例如头文件包含路径为“C:\\ZRXSDK\\ arxport”。

3) 在工程属性对话框的Linker(链接器)-->Input(输入)-->Additional Dependencies(附加依赖

联系客服:779662525#qq.com(#替换为@)