+ -
当前位置:首页 → 问答吧 → 如何在窗口的WM_WINDOWPOSCHANGED消息响应函数里面知道该窗口跳到顶端去了

如何在窗口的WM_WINDOWPOSCHANGED消息响应函数里面知道该窗口跳到顶端去了

时间:2011-12-06

来源:互联网

如何在窗口的WM_WINDOWPOSCHANGED消息响应函数里面知道该窗口跳到顶端去了

一个对话框被另一个程序调BringWindowToTop函数跳到最顶端,
或者被鼠标键盘等操作点到顶端
如何让它跳出来时做点事情

作者: wozhaolala   发布时间: 2011-12-06

GetForegroundWindow() ??
枚举窗口EnumWindows()得到第一个窗口判断是否和你指定的窗口HWND相等?

作者: VisualEleven   发布时间: 2011-12-06

在OnWindowPosChanged应该这样就可以吧?
if (!(lpwndpos->flags & SWP_NOACTIVATE))
{
}

SWP_NOACTIVATE Does not activate the window. If this flag is not set, the window is activated and moved to the top of either the topmost or non-topmost group (depending on the setting of the hWndInsertAfter parameter).
 
hwndInsertAfter 
Specifies the position of the window in Z order (front-to-back position). This member can be a handle to the window behind which this window is placed, or can be one of the special values listed with the SetWindowPos function. 

作者: yuucyf   发布时间: 2011-12-06

HWND desWnd = ::GetDesktopWindow();
HWND topWnd = ::GetTopWindow(desWnd);
if(topWnd == this->m_hWnd)
{
  //说明自己在顶层
}

作者: heksn   发布时间: 2011-12-06