在CAcUiTabChildDialog中使用点取或者(拾取)时卡住的问题

Posted unicornsir

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在CAcUiTabChildDialog中使用点取或者(拾取)时卡住的问题相关的知识,希望对你有一定的参考价值。

问题描述:在Tab的对话框中,其子对话框CAcUiTabChildDialog中用点取或者(拾取)时卡住的问题

在子对话框中:

    BeginEditorCommand();

   CompleteEditorCommand();

 

解决方案:

此类问题需要在对话框CAcUiTabMainDialog中添加

#define MSG_BEGIN_EDITOR_CAL WM_USER+1
#define MSG_END_EDITOR_CAL WM_USER+2

ON_MESSAGE(MSG_BEGIN_EDITOR_CAL,BeginEditor)
ON_MESSAGE(MSG_END_EDITOR_CAL,EndEditor)

 

afx_msg LRESULT XXX_Main::BeginEditor(WPARAM wparam, LPARAM lparam)
{
    BeginEditorCommand();
    return 0;
}

afx_msg LRESULT XXX_Main::EndEditor(WPARAM wparam, LPARAM lparam)
{
    CompleteEditorCommand();
    return 0;
}

 

而子对话框调用

void XXX_Sub::OnBnClickedButtonpoint()
{
    // TODO:  在此添加控件通知处理程序代码
    UpdateData();

    GetParent()->SendMessage(MSG_BEGIN_EDITOR_CAL);

    //选择点
    ads_point pt;
    int retcode = acedGetPoint(NULL, _T("选取内部参考点:"), pt);

    GetParent()->SendMessage(MSG_END_EDITOR_CAL);

    if (retcode != RTNORM)
        return;

    T_S_BASEFUN_AUTOCAD.PointTran(1, 0, pt);
    m_ptRef.set(pt[0], pt[1], pt[2]);
    UpdateData(false);
}


以上是关于在CAcUiTabChildDialog中使用点取或者(拾取)时卡住的问题的主要内容,如果未能解决你的问题,请参考以下文章

CAD选择范围打印(com接口)

CAD中怎么删除多余的表行?CAD表格编辑教程

关于mapgis的使用技巧,要详细操作步骤

ZJOI2008 骑士

excel中如何快速设置每行每列的宽度

51nod 1270 数组的最大代价 思路:简单动态规划