几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量

几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 (http://www.dimcax.com/hust/index.php)
-   ObjectARX(C++) (http://www.dimcax.com/hust/forumdisplay.php?f=34)
-   -   【转帖】[求助]无模式对话框如何获得光标? (http://www.dimcax.com/hust/showthread.php?t=6886)

yang686526 2009-04-16 04:53 PM

【转帖】[求助]无模式对话框如何获得光标?
 
[求助]无模式对话框如何获得光标?
[求助]无模式对话框如何获得光标?
在arx中建立无模式对话框,运行后,需要先在autocad中进行选择等操作,再回到无模式对话框中进行输入操作,但无模式对话框无法获得光标,我知道有一个keepfocus函数,但无论是返回true还是false,都无法实现光标在autocad和无模式对话框中自由切换。这个问题该如何解决?有哪位能指点一下,非常感谢1
看文档,
在你使用acedxxxxx的时候:
1.你的类必须继承于caduixxxx
2.在使用acedxxxxx之前调用begineditorcommand()
3.在之后根据成功失败的情况调用completeeditorcommand()或canceleditorcommand();
文档中有下面的论述:
add the button handlers for picking a point and angle using the autocad editor. the begineditorcommand(), completeeditorcommand(), and canceleditorcommand() functions are used to hide the dialog, allow the call to acedgetpoint and acedgetangle, and finally, either cancel or redisplay the dialog based on how the user picked:
// asdkacuidialogsample message handlers
void asdkacuidialogsample::onbuttonpoint()
{
// hide the dialog and give control to the editor
//
begineditorcommand();
ads_point pt;
// get a point
//
if (acedgetpoint(null, "\npick a point: ", pt) == rtnorm) {
// if the point is good, continue
//
completeeditorcommand();
m_strxpt.format("%g", pt[x]);
m_strypt.format("%g", pt[y]);
m_strzpt.format("%g", pt[z]);
displaypoint();
} else {
// otherwise cancel the command (including the dialog)
canceleditorcommand();
}
}
我的qq 172522850
caduibasedialog::begineditorcommand function

void
begineditorcommand();
call this method to indicate an autocad interactive command is starting.
example:
begineditorcommand(); if (domyinteractivecommand()) completeeditorcommand(); else canceleditorcommand();
我的qq 172522850


所有的时间均为北京时间。 现在的时间是 02:57 AM.