lulisong 发表于 2006-1-14 22:24:00

[求助]如何让发送的消息执行完后才返回

<P>我在一对话框的消息响应函数中向CAD发送一命令。如何控制让命令执行完后才执行响应函数后面的语句?</P>
<P>CTestDlg::OnButton()</P>
<P>{</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp; .....</P>
<P>&nbsp;&nbsp; sendCommand("test");</P>
<P>&nbsp;&nbsp; acutPrintf("test");&nbsp;&nbsp;&nbsp; //如何控制在CAD下执行完test命令后再返回后执行这句</P>
<P>}</P>
<P>我用这个函数发命令达不到要求</P>
<P>void sendCommand (char *cmd_line)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>{<BR>&nbsp;&nbsp;&nbsp; COPYDATASTRUCT&nbsp; cmdDATA;<BR>&nbsp;&nbsp;&nbsp; HWND&nbsp; hwnd;</P>
<P>&nbsp;&nbsp;&nbsp; hwnd = adsw_acadMainWnd();</P>
<P>&nbsp;&nbsp;&nbsp; cmdDATA.dwData = 1;<BR>&nbsp;&nbsp;&nbsp; cmdDATA.cbData = strlen(cmd_line)+1;<BR>&nbsp;&nbsp;&nbsp; cmdDATA.lpData = cmd_line;</P>
<P>&nbsp;&nbsp;&nbsp; SendMessage(hwnd, WM_COPYDATA, (WPARAM) 0, (LPARAM) &amp;cmdDATA);<BR>}</P>
<P>sennStringtoExecute().也不行</P>

lulisong 发表于 2006-1-15 23:38:00

<P>怎么没人帮忙。王斑竹给看看啊?</P>

hellow 发表于 2006-1-21 02:17:00

<P>1、用编辑器反应器监视特定命令的结束(commandCancelled、commandEnded、commandFailed)。</P>
<P>2、把命令发出后要执行的东西包装成一回调个函数。</P>
<P>3、在监视到命令结束时调用这个回调就可以了。</P>
<P>需要派生并实例化一个编辑器反应器。</P>
页: [1]
查看完整版本: [求助]如何让发送的消息执行完后才返回