激活一个窗口到前台显示

激活一个窗口到前台显示

最后我用的办法是:SW_SHOWNORMAL  BringWindowToTop


SetForegroundWindow
 BringWindowToTop

SwitchToThisWindow
typedef void (WINAPI *PROCSWITCHTOTHISWINDOW) (HWND, BOOL); 
PROCSWITCHTOTHISWINDOW SwitchToThisWindow; 
HMODULE hUser32 = GetModuleHandle("user32"); 
SwitchToThisWindow = (PROCSWITCHTOTHISWINDOW)GetProcAddress(hUser32, 
"SwitchToThisWindow"); 

hCurWnd = ::GetForegroundWindow();
dwMyID = ::GetCurrentThreadId();
dwCurID = ::GetWindowThreadProcessId(hCurWnd, NULL);
::AttachThreadInput(dwCurID, dwMyID, TRUE);
::SetForegroundWindow(m_hWnd);
::AttachThreadInput(dwCurID, dwMyID, FALSE);


  this->ShowWindow(SW_SHOWNA);//简单的显示主窗口完事儿
            this->SetActiveWindow();
            this->SetForegroundWindow();   
            //this->SetWindowPos(this,LOWORD(lParam),HIWORD(lParam),c.Width(),c.Height(),SWP_NOACTIVATE);
            this->BringWindowToTop();

SW_HIDE 隐藏窗口,激活另一窗口

SW_MINIMIZE 最小化窗口,激活另一窗口

SW_RESTORE 用原来的大小和位置显示一个窗口,同时令其进入活动状态

SW_SHOW 用当前的大小和位置显示一个窗口,同时令其进入活动状态

SW_SHOWMAXIMIZED 最大化窗口,并将其激活

SW_SHOWMINIMIZED 最小化窗口,并将其激活

SW_SHOWMINNOACTIVE 最小化一个窗口,但不改变活动窗口

SW_SHOWNA 用当前的大小和位置显示一个窗口,不改变活动窗口

SW_SHOWNOACTIVATE 用最近的大小和位置显示一个窗口,同时不改变活动窗口

SW_SHOWNORMAL 与SW_RESTORE相同

你可能感兴趣的:(激活一个窗口到前台显示)