C#代码像QQ的右下角消息框一样,无论现在用户的焦点在哪个窗口,消息框弹出

时间:2021-10-05 02:07:05

C#代码像QQ的右下角消息框一样,无论现在用户的焦点在哪个窗口,消息框弹出后都不影响焦点的变化,那么有两种方法

时间:2016-10-31 00:47:43      阅读:493      评论:0      收藏:0      [点我收藏+]

标签:

你QQ的右下角消息框一样,,无论现在用户的焦点在哪个窗口,消息框弹出后都不影响焦点的变化,那么有两种方法:

要么重写需要弹出的窗体的事件:

protected override CreateParams CreateParams     {     get     {         const int WS_EX_NOACTIVATE = 0x08000000;         CreateParams cp = base.CreateParams;         cp.ExStyle |= WS_EX_NOACTIVATE;         return cp;     } } // CreateParams 在 System.Windows.Forms.Controls 命名空间下

要么调用系统钩子:

// 引用系统钩子 [DllImport("user32.dll")] public static extern IntPtr GetActiveWindow();   [DllImport("user32.dll")]  public static extern IntPtr SetActiveWindow(IntPtr hwnd);    // 在窗口弹出时做以下处理 IntPtr activeForm = GetActiveWindow(); // 先得到当前的活动窗体  new form2.Show(false); // 弹出新窗体 SetActiveWindow(activeForm); // 在把焦点还给之前的活动窗体


标签:

原文地址:

(0)

(0)

   

举报

评论 一句话评论(0