今天在做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