让窗口置前的方法
即使有其他窗口在最前面,也可以让本窗口置前的方法
// {{ force m_hWnd topmost
//不管其他窗口是不是topmost,本例子都可以让此窗口置于最前端
HWND hForeWnd = ::GetForegroundWindow();
DWORD dwForeWndTreadId = ::GetWindowThreadProcessId(hForeWnd,NULL);
DWORD dwCurWndTreandId = ::GetCurrentThreadId();
::AttachThreadInput(dwCurWndTreandId, dwForeWndTreadId, TRUE);
::ShowWindow(m_hWnd, SW_SHOW);
::SetWindowPos(m_hWnd, HWND_TOPMOST,0,0,SWP_NOSIZE | SWP_NOMOVE);
::SetWindowPos(m_hWnd, HWND_NOTOPMOST,0,0,SWP_NOSIZE | SWP_NOMOVE);
::SetForegroundWindow(m_hWnd);
::AttachThreadInput(dwCurWndTreandId, dwForeWndTreadId, FALSE);
// }}force m_hWnd topmost.
// {{ force m_hWnd topmost
//不管其他窗口是不是topmost,本例子都可以让此窗口置于最前端
HWND hForeWnd = ::GetForegroundWindow();
DWORD dwForeWndTreadId = ::GetWindowThreadProcessId(hForeWnd,NULL);
DWORD dwCurWndTreandId = ::GetCurrentThreadId();
::AttachThreadInput(dwCurWndTreandId, dwForeWndTreadId, TRUE);
::ShowWindow(m_hWnd, SW_SHOW);
::SetWindowPos(m_hWnd, HWND_TOPMOST,0,0,SWP_NOSIZE | SWP_NOMOVE);
::SetWindowPos(m_hWnd, HWND_NOTOPMOST,0,0,SWP_NOSIZE | SWP_NOMOVE);
::SetForegroundWindow(m_hWnd);
::AttachThreadInput(dwCurWndTreandId, dwForeWndTreadId, FALSE);
// }}force m_hWnd topmost.
30.89KB
文件大小:
评论区