zoukankan      html  css  js  c++  java
  • C# 设置最顶层窗口。TopMostWindow

    code:

    namespace LOLMM
    {
        /// <summary>
        /// Interaction logic for MainWindow.xaml
        /// </summary>
        public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
                Topmost = true;
                Loaded += new RoutedEventHandler(MainWindow_Loaded);
                t.Interval = TimeSpan.FromMilliseconds(300);
                t.Tick += new EventHandler(t_Tick);
    
    
            } 
            DispatcherTimer t = new DispatcherTimer();
    
            void t_Tick(object sender, EventArgs e)
            {
                TopMostWindow.SetTopomost(new WindowInteropHelper(this).Handle);
            }
    
            void MainWindow_Loaded(object sender, RoutedEventArgs e)
            {
                TopMostWindow.SetTopomost(new WindowInteropHelper(this).Handle);
                t.Start();
            }
    
        }
    }
    

      

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Runtime.InteropServices;
    
    namespace LOLMM
    {
        public class TopMostWindow
    {
      public const int HWND_TOP = 0;
      public const int HWND_BOTTOM = 1;
      public const int HWND_TOPMOST = -1;
      public const int HWND_NOTOPMOST = -2;
    
    
      [DllImport("user32.dll")]
      public static extern IntPtr SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int x, int y, int cx, int cy, uint wFlags);
    
    
      [DllImport("user32.dll")]  
      public static extern bool GetWindowRect(IntPtr hWnd, out WindowRect lpRect);
    
      /// <summary>
      /// 设置窗体为TopMost
      /// </summary>
      /// <param name="hWnd"></param>
      public static void SetTopomost(IntPtr hWnd)
      {
        WindowRect rect = new WindowRect();
        GetWindowRect(hWnd, out rect);
        SetWindowPos(hWnd, (IntPtr)HWND_TOPMOST, rect.Left, rect.Top, rect.Right - rect.Left, rect.Bottom - rect.Top, 0);
      }
    }
    
    public struct WindowRect
    {
      public int Left;
      public int Top;
      public int Right;
      public int Bottom;
    }
    
    
    }
    //调用方式:
    //将此窗体设置为Topmost
    //TopMostWindow.SetTopomost(new WindowInteropHelper(this).Handle);
    

      

  • 相关阅读:
    在浏览器地址栏输入URL,按下回车后究竟发生了什么?
    企业内部DNS跨国配置案例
    Cobbler批量部署CentOS
    入侵检测工具之RKHunter & AIDE
    SSH服务端配置、优化加速、安全防护
    数据传输的加密过程
    mysql怎么让一个存储过程定时执行
    MYSQL中replace的用法
    eclipse 插件
    MySQL定时执行脚本(计划任务)命令实例
  • 原文地址:https://www.cnblogs.com/wgscd/p/10675391.html
Copyright © 2011-2022 走看看