问题描述:cad中添加面板后,聚焦面板,按下按下回车键或者esc键后,面板上的所有控件消失,使用spy++查看,对话框和控件都还在,就是不显示被隐藏了。
大致是这样的弹窗
按下回车键enter和esc键后就消失了,变成这样
处理方式一:针对OnOK函数处理。百度一堆就不说了。
处理方式二:重载OnCommand函数,处理回车键enter和esc键按键
BOOL CMyPaletteChildDlg1::OnCommand(WPARAM wParam, LPARAM lParam)
{
switch ( wParam ) {
case IDOK://按下回车键
case IDCANCEL://按下esc键
return (FALSE) ;
}
return CAcUiDialog::OnCommand(wParam, lParam);
}
原本自己手敲时发现的该问题,使用了处理onOk函数可以处理。后来又使用ObjectArx中的MFC support class Wizard 创建添加面板,继承面板类CAdUiPalette创建后,自动生成的子对话框中生成的OnCommand能解决问题。原本手动敲的测试案例,删掉原本的onOk函数处理,手动添加OnCommand事件及其实现后也能解决问题了。