您的位置:首页 > 其它

WM_ACTIVATE窗口激活消息

2016-05-28 12:05 531 查看
消息: WM_ACTIVATE

参数: 

fActive  = LOWORD(wParam);   // activation flag 

fMinimized = (BOOL)HIWORD(wParam); // minimized flag 

hwndPrevious= (HWND)lParam;   // window handle

fActive 参数表明窗口是被激活还是被取消。该信息保存在 wParam 的低阶字中,可以取以下的值:

WA_CLICKACTIVE       通过鼠标单击激活了该窗口 

WA_ACTIVE                   通过鼠标以外的工具(如键盘)激活了该窗口 

WA_INACTIVE               取消该窗口的激活 

fMinimized 参数表明窗口是否为最小化状态。该信息保存在 wParam 的高阶字中,非0表示最小化,0表示不是最小化

hwndPrevious 参数表示其他窗口句柄,根据fActive参数的不同含义不同,fActive为激活时hwndPrevious表示上一个激活的窗口句柄,

fActive为失去激活时hwndPrevious表示下一个激活的窗口句柄,注意hwndPrevious可能为NULL,

该信息保存在 lParam中。

示例代码:

代码作用为当窗口失去激活时判断下一个窗口是否是同类的窗口,是的话设置一个标志

void CThreadDlg::OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized)
{
CDialog::OnActivate(nState, pWndOther, bMinimized);
if (WA_INACTIVE == nState)//失去激活
{
if (NULL != pWndOther)
{
if (pWndOther->IsKindOf(RUNTIME_CLASS(CThreadDlg)))
{
m_bFirstCall = false;
}
}
}
else //激活
{
m_bFirstCall = true;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  WM_ACTIVATE