beginEditorCommand()的一个问题?
下面是一个按钮的消息相映函数,调用BeginEditorCommand();把焦点交给AutoCAD.但都用后交给了AutoCAD,但对话框怎么隐藏不了!void GRALIBMAIN::OnButtonInsert()
{
// TODO: Add your control notification handler code here
BeginEditorCommand();//Òþ²Ø¶Ô»°¿òº¯Êý
ads_point basept;
InsertDlg Indlg;
// int nReturnValue = Indlg.DoModal();
if (acedGetPoint(NULL, "\nPick a point: ", basept) == RTNORM)
{
CompleteEditorCommand();
// m_strXPt.Format("%g", basept);
// m_strYPt.Format("%g", basept);
// m_strZPt.Format("%g", basept);
}
else
{
CancelEditorCommand();
}
}
同样书上的一个例子就能隐藏!
void AsdkAcUiDialogSample::OnButtonPoint()
{
// Òþ²Ø¶Ô»°¿ò£¬²¢½«¿ØÖƽ»¸øAutoCADͼÐα༭Æ÷
BeginEditorCommand();
ads_point pt;
// »ñÈ¡Ò»¸öµã
if (acedGetPoint(NULL, "\nPick a point: ", pt) == RTNORM) {
// Èç¹ûµÃµ½Ò»¸öµã£¬Ôò¼ÌÐø
CompleteEditorCommand();
m_strXPt.Format("%g", pt);
m_strYPt.Format("%g", pt);
m_strZPt.Format("%g", pt);
DisplayPoint();
} else {
// Èç¹ûûÓеõ½Ò»¸öµã£¬Èç°´ÏÂESC¼ü£¬ÔòÖжÏÓ¦ÓóÌÐòµÄÖ´ÐÐ.
CancelEditorCommand();
}
}
清高手指点!!
谢谢! 我认为问题不在这里,你的对话框是不是MFC中的?如果是从CDialog中派生过来的,请改正,应该用CAcUiDialog,也就是把所有的Cdiglog用CAcUiDialog代替 调用一下ShowWindow(SW_HIDE); 支持2樓看法. 谢谢支持 就是2的看法 在消息映射时一定要以CAcUiDialog为基类,否则成为非模式对话框。 <P>你跟我一样,只把类的继承改成 <FONT color=#000000>CAcUiDialog</FONT></P>
<P><FONT color=#000000>而忘下改下边的消息循环</FONT></P>
<P>BEGIN_MESSAGE_MAP(newDlg, <FONT color=#ff0000>CAcUiDialog</FONT>)<BR> //{{AFX_MSG_MAP(newDlg)<BR> ON_BN_CLICKED(IDC_BUTTON1, OnButton1)<BR> //}}AFX_MSG_MAP<BR>END_MESSAGE_MAP()</P>
页:
[1]