谁能帮我看看这段代码是什么意思?
<P>这段代码对应了CAD里的什么操作?始终弄不明白,尤其是那些函数里的参数.求哪位看出个所以然的谈谈自己的想法,感激不尽!</P><P>void SetVars(int cmd,int bpmd,int fdia, int cmddia)<BR>{<BR> struct resbuf *cmdRes,*bpmdRes,*fdiaRes, *cmddias;</P>
<P> cmdRes = ads_newrb(RTSHORT);<BR> bpmdRes = ads_newrb(RTSHORT);<BR> fdiaRes = ads_newrb(RTSHORT);<BR> cmddias = ads_newrb(RTSHORT);</P>
<P> cmdRes ->resval.rint = cmd;<BR> bpmdRes->resval.rint = bpmd;<BR> fdiaRes->resval.rint = fdia;<BR> cmddias->resval.rint = cmddia;</P>
<P> ads_setvar("cmdecho",cmdRes);<BR> ads_setvar("blipmode",bpmdRes);<BR> ads_setvar("filedia",fdiaRes);<BR> ads_setvar("cmddia",cmddias);</P>
<P> ads_relrb(cmdRes);<BR> ads_relrb(bpmdRes);<BR> ads_relrb(fdiaRes);<BR> ads_relrb(cmddias);<BR>}</P>
<P>void PostAcadCommand(CString theCmdLine)<BR>{<BR> CWnd * pACad = (CWnd::FromHandle(adsw_acadMainWnd()))->GetTopWindow( );</P>
<P> LPARAM lParam = 0x00190001;<BR> int len = theCmdLine.GetLength();<BR> for(int i=0; i<len;i++)<BR> {<BR> pACad->PostMessage( WM_CHAR, WPARAM(theCmdLine), lParam);<BR> }<BR> return;<BR>}</P>
<P>void CFrameDlg::OnOK() <BR>{</P>
<P> csPath = "D:\\1.dwg";</P>
<P> SetVars(0,0,0,1);<BR> ads_command(RTSTR, "._tilemode", RTSTR,"0", RTNONE);<BR> ads_command(RTSTR,"._pspace",RTNONE);<BR> ads_command(RTSTR,"._insert",RTSTR,(LPCTSTR)csPath, RTSTR, "0,0,0", RTREAL,1.0,RTSTR,"",RTSTR,"",RTNONE);<BR> ads_command(RTSTR, "._zoom", RTSTR,"_extents", RTNONE);<BR> ads_printf("continue MVIEW to insert Model space viewports for output.\n");<BR> SetVars(1,0,1,1);<BR> PostAcadCommand("._mview ");</P>
<P>}</P> <P>以上一些函数都属于ads函数,在ObjectARX中不再用了,采用了新的函数名(新旧函数对照表见adsmigr.h)</P>
<P>#define ads_newrb acutNewRb<BR>#define ads_relrb acutRelRb</P>
<P>#define ads_setvar acedSetVar</P>
<P>#define ads_command acedCommand</P>
<P>#define ads_printf acutPrintf</P>
<P>这几个函数的具体用法参见doc中acutNewRb、acutRelRb、acedSetVar、acedCommand、acutPrintf、acutNewRb全局函数的用法。</P>
页:
[1]