WM_ACTIVATE窗口激活消息

消息: 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;
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Barry__

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值