现在的位置: 首页 > 综合 > 正文

优优屏幕锁功能介绍之十 让窗体置顶

2013年03月13日 ⁄ 综合 ⁄ 共 1403字 ⁄ 字号 评论关闭

  让窗体在最上面的方法是有两种方法:

方法一:

/// <summary>
        /// 窗体总在前端显示
        /// </summary>
        /// <param name="hwnd">窗体的句柄</param>
        /// <param name="hWndInsertAfter">窗口句柄。在窗口列表中,窗口hwnd会置于这个窗口句柄的后面</param>
        /// <param name="x">窗口新的x坐标</param>
        /// <param name="y">窗口的新的y坐标</param>
        /// <param name="cx">窗口的宽度</param>
        /// <param name="cy">窗口的高度</param>
        /// <param name="wFlags"></param>
        /// <returns></returns>
        [DllImport("user32.dll", EntryPoint = "SetWindowPos")]
        public static extern int SetWindowPos(
            IntPtr hwnd,
            int hWndInsertAfter,
            int x,
            int y,
            int cx,
            int cy,
            int wFlags
        );

private void FrmLock_Load(object sender, EventArgs e)
        {

            //窗体总在前端显示
            SetWindowPos( this.Handle, -1, 0, 0, this.Width , this.Height , 0);

          }

方法二是:

 

//============================================

先声明
        /// <summary>
        /// 让窗体在最前面
        /// </summary>

        public const int HWND_TOPMOST = -1;
        [DllImport("user32", EntryPoint = "SetWindowPos")]
        public static extern bool SetWindowPos(int hwnd,int hWndInsertAfter,int x,int y,int cx,int cy,uint wFlags);
        //=====================================================================

 

   再 时间事件下写如下代码:

#region 设置窗体在最上面PAI
        //
        private void timer2_Tick(object sender, EventArgs e)
        {
            SetWindowPos(this.Handle.ToInt32(),HWND_TOPMOST,0,0,0,300,1);
        }
        #endregion

抱歉!评论已关闭.