FkZone's StuDio

.NET Compiler!

使用API置顶窗体

语言:C#

场景:设置前置窗体

方式一:设置窗体自带TOPMOST属性。不做详解。

方式二:通过系统API函数FindWindowEx、SetWindowPos结合进行实现。

示例:以系统消息窗口为例。

声明:

[DllImport("user32.dll", SetLastError = true)]
static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, SetWindowPosFlags uFlags);
[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);

常量:

public const int HWND_TOP = 0;
public const int HWND_BOTTOM = 1;
public const int HWND_TOPMOST = -1;
public const int HWND_NOTOPMOST = -2;
private enum SetWindowPosFlags : uint
{  
   IgnoreMove = 0x0002,  
   IgnoreResize = 0x0001
}

使用:

IntPtr _hwd = FindWindowEx(IntPtr.Zero, IntPtr.Zero, "#32770", "");
if (_hwd != IntPtr.Zero)
{    
    SetWindowPos(_hwd, new IntPtr(HWND_TOPMOST), 0, 0, 0, 0,SetWindowPosFlags.IgnoreResize | SetWindowPosFlags.IgnoreMove);
}


发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«   2017年7月   »
12
3456789
10111213141516
17181920212223
24252627282930
31
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
    友情链接

    Powered By Z-BlogPHP 1.5.1 Zero

    沪ICP备11036919号 Copyright Fkzone.com Rights Reserved.