// 防止菜单栏在激活时获得焦点
//CMFCPopupMenu::SetForceMenuFocus(FALSE);

解决方案 »

  1.   

    有些窗口只是提供一些辅助工具,它不应该跟工作窗口争抢焦点,典型的菜单、工具栏等都是(工具栏上的编辑框例外,所有编辑框都必须能获得焦点)。某些辅助功能需要获得工作窗口中当前选择的上下文内容,但有些设计不够完善的工作窗口在丢失焦点后改变了这种上下文,使得辅助功能不能正确读取需要的内容,这是设计者不希望见到的结果,所以通常用户点击辅助功能窗口时,系统并不切换焦点窗口,维持原有焦点窗口不变,就是为了这个目的。在对话框的各种控件中也有类似行为,STATIC控件是从不获取焦点的,点击STATIC控件时,对话框中的焦点窗口不变,只有EDIT/BUTTON之类的控件才会争抢焦点。