取代BringWindowToTop的一种解决办法

最近希望通过程序控制另外一个程序置于其他窗口的顶层,但是,又不是那种一直处于顶层的窗口,开始使用BringWindowToTop函数,结果不起作用,后来采用了SetWindowPos,来实现

            //读取当前的主框架的style
            DWORD dwStyle=::GetWindowLong(hWnd,GWL_EXSTYLE);
           
            ::SetWindowPos(hWnd,HWND_TOPMOST,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE);
           
            //如果主框架原来已经被设置为topmost,则此处不重设,否则进行重设    2008-06-30 yych
            if(!((dwStyle&WS_EX_TOPMOST)==WS_EX_TOPMOST ))
            {
                //保证主框架前置,然后再恢复到正常状态    2008-03-26 yych
                SetWindowPos(hWnd,HWND_NOTOPMOST,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE);
               
            }

你可能感兴趣的:(原创)