业务场景:在处理全局钩子捕获到Windows特定消息需要关闭指定的弹出窗体。
一个自定义窗体:
或者一些窗体上的Popup控件
不管是不是这个业务场景,都可以在不相干的后台中去获取控件并关闭。
/// <summary>
/// Windows钩子
/// </summary>
private IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)
{
switch (msg)
{
case 33011://屏幕切换
{
SwitchAScreenClosePopup();
}
default:
break;
}
return IntPtr.Zero;
}
/// <summary>
/// 切换到A屏时关闭popup
/// </summary>
private void SwitchAScreenClosePopup()
{
try
{
List<Popup> lstOpenPopup