相比起在普通的环境中建立一个非模态对话框,在cad中建立还是稍微麻烦一些的。
主要还是焦点问题,在cad中的非模态对话框无法获取焦点——或者说刚拿到焦点就丢失了。
处理方法:
增加消息处理函数,处理cad平台的WM_ACAD_KEEPFOCUS消息。
ON_MESSAGE(WM_ACAD_KEEPFOCUS, OnKeepFocus)
//OnKeepFocus函数:直接返回TRUE即可。
LRESULT Class_name::OnKeepFocus(WPARAM,LPARAM)
{
return TRUE;
}
一般来说,直接返回TRUE即可。
也可以改成判定鼠标所在区域是否为窗口区域来返回对应的值。这样改动后后,只要鼠标离开窗口区域,窗口就会丢失焦点。