在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); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix