MFC显示非模态对话框的时候,设置它不获取焦点!
2013-11-20 12:01
141 查看
今天在做CAD二次开发时由于需要这个功能,所以学习了一下,发现平时显示的时候大多是
ShowWindow(SW_HIDE); //隐藏
ShowWindow(SW_SHOW); //显示
要实现显示该窗口并且使它不获取焦点,只需要把参数在设置为SW_SHOWNOACTIVATE就可以了。而使用该设置之后如果需要在程序里面自己设置焦点,需要先调用GetActiveWindow判断是否激活,如果没有激活,先调用SetActiveWindow激活,再调用Focus方法获得Focus。
(注意:网上也有人说这样设置有时候会不起效果,怀疑可能是与Dialog显示时SetFocus有关,具体没有仔细去探究,在这里提醒下。)
ShowWindow函数其它参数与对应值:
SW_HIDE 0
SW_SHOWNORMAL 1
SW_NORMAL 1
SW_SHOWMINIMIZED 2
SW_SHOWMAXIMIZED 3
SW_MAXIMIZE 3
SW_SHOWNOACTIVATE 4
SW_SHOW 5
SW_MINIMIZE 6
SW_SHOWMINNOACTIVE 7
SW_SHOWNA 8
SW_RESTORE 9
SW_SHOWDEFAULT 10
SW_FORCEMINIMIZE 11
SW_MAX 11
ShowWindow(SW_HIDE); //隐藏
ShowWindow(SW_SHOW); //显示
要实现显示该窗口并且使它不获取焦点,只需要把参数在设置为SW_SHOWNOACTIVATE就可以了。而使用该设置之后如果需要在程序里面自己设置焦点,需要先调用GetActiveWindow判断是否激活,如果没有激活,先调用SetActiveWindow激活,再调用Focus方法获得Focus。
(注意:网上也有人说这样设置有时候会不起效果,怀疑可能是与Dialog显示时SetFocus有关,具体没有仔细去探究,在这里提醒下。)
ShowWindow函数其它参数与对应值:
SW_HIDE 0
SW_SHOWNORMAL 1
SW_NORMAL 1
SW_SHOWMINIMIZED 2
SW_SHOWMAXIMIZED 3
SW_MAXIMIZE 3
SW_SHOWNOACTIVATE 4
SW_SHOW 5
SW_MINIMIZE 6
SW_SHOWMINNOACTIVE 7
SW_SHOWNA 8
SW_RESTORE 9
SW_SHOWDEFAULT 10
SW_FORCEMINIMIZE 11
SW_MAX 11
相关文章推荐
- 设置Flex在加载应用的时候获取焦点
- 设置Flex在加载应用的时候获取焦点
- input获取焦点时候value值隐藏,失去焦点的时候显示
- mfc非模态对话框Child窗口CEdit控件获取不到焦点问题
- 显示界面的时候直接获取到EditText焦点弹出键盘
- 设置文本框获取焦点后清空默认值,焦点移开后若值为空则显示默认值,否则显示修改的值
- 用 focus 获取焦点并设置样式
- (他山之石)MFC学习之路(一)VC MFC程序,在About对话框中获取并显示程序的版本号
- VC编程实现位图处理类(显示位图、加载位图、获取/设置像素点颜色)
- Android 设置系统的返回键 和软键盘获取焦点问题
- MFC中获取/设置按钮的文字/改变按钮的文字
- 设置EditText自动获取焦点并弹出输入法
- devexpress表格控件gridcontrol设置隔行变色、焦点行颜色、设置(改变)显示值、固定列不移动(附源码)
- Android——LinearLayout按下(state_pressed)或获取焦点时(state_focused)背景设置不同颜色或图片
- [乐意黎原创] SWing JTextField 获取或设置焦点
- Android 自定义Button按钮显示样式(正常、按下、获取焦点)
- MFC滚动条设置的小研究,解决R6010错误和无法显示图片全部等错误
- 设置EditText获取焦点
- JavaScript DOM 获取焦点然后逐行显示
- MFC 设置初始焦点和TAB顺序