/// /summary static public extern bool UpdateWindow(IntPtr

时间:2022-01-29 01:09:50

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Runtime.InteropServices;

namespace WindowsAPI

{

class CSharp_Win32Api

{

#region User32.dll 函数

/// <summary>

/// 该函数检索一指定窗口的客户区域或整个屏幕的显示设备上下文环境的句柄,以后可以在GDI函数中使用该句柄来在设备上下文环境中绘图。hWnd:设备上下文环境被检索的窗口的句柄

/// </summary>

[DllImport("user32.dll", CharSet = CharSet.Auto)]

public static extern IntPtr GetDC(IntPtr hWnd);

/// <summary>

/// 函数释放设备上下文环境(DC)供其他应用措施使用。

/// </summary>

public static extern int ReleaseDC(IntPtr hWnd, IntPtr hDC);

/// <summary>

/// 该函数返回桌面窗口的句柄。桌面窗口笼罩整个屏幕。

/// </summary>

static public extern IntPtr GetDesktopWindow();

/// <summary>

/// 该函数设置指定窗口的显示状态。

/// </summary>

static public extern bool ShowWindow(IntPtr hWnd, short State);

/// <summary>

/// 通过发送重绘动静 WM_PAINT 给方针窗体来更新方针窗体客户区的无效区域。

/// </summary>

static public extern bool UpdateWindow(IntPtr hWnd);

/// <summary>

/// 该函数将创建指定窗口的线程设置到前台,并且激该死窗口。键盘输入转向该窗口,并为用户改各类可视的记号。系统给创建前台窗口的线程分配的权限稍高于其他线程。

/// </summary>

static public extern bool SetForegroundWindow(IntPtr hWnd);

/// <summary>

/// 该函数转变一个子窗口,弹出式窗口式顶层窗口的尺寸,位置和Z序。

/// </summary>

static public extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int x, int y, int Width, int Height, uint flags);

/// <summary>

/// 打开剪切板

/// </summary>

static public extern bool OpenClipboard(IntPtr hWndNewOwner);

/// <summary>

/// *剪切板

/// </summary>

static public extern bool CloseClipboard();

/// <summary>

/// 打开清空</summary>

static public extern bool EmptyClipboard();

/// <summary>

/// 将存放有数据的内存块放入剪切板的资源打点中

/// </summary>

static public extern IntPtr SetClipboardData(uint Format, IntPtr hData);

/// <summary>

/// 在一个矩形中装载指定菜单条目的屏幕坐标信息

/// </summary>

static public extern bool GetMenuItemRect(IntPtr hWnd, IntPtr hMenu, uint Item, ref RECT rc);

[DllImport("user32.dll", ExactSpelling = true, CharSet = CharSet.Auto)]

/// <summary>

/// 该函数获得一个指定子窗口的父窗口句柄。

/// </summary>

public static extern IntPtr GetParent(IntPtr hWnd);

/// <summary>

/// 该函数将指定的动静发送到一个或多个窗口。此函数为指定的窗口挪用窗口措施,直到窗口措施措置惩罚惩罚完动静再返回。 

/// </summary>

/// <param>其窗口措施将接收动静的窗口的句柄</param>

/// <param>指定被发送的动静</param>

/// <param>指定附加的动静指定信息</param>

/// <param>指定附加的动静指定信息</param>

/// <returns></returns>

public static extern int SendMessage(IntPtr hWnd, int msg, int wParam, int lParam);

public static extern IntPtr SendMessage(IntPtr hWnd, int msg, int wParam, IntPtr lParam);

public static extern void SendMessage(IntPtr hWnd, int msg, int wParam, ref RECT lParam);

public static extern int SendMessage(IntPtr hWnd, int msg, int wParam, ref POINT lParam);

public static extern void SendMessage(IntPtr hWnd, int msg, int wParam, ref TBBUTTON lParam);

public static extern void SendMessage(IntPtr hWnd, int msg, int wParam, ref TBBUTTONINFO lParam);

public static extern int SendMessage(IntPtr hWnd, int msg, int wParam, ref REBARBANDINFO lParam);

public static extern void SendMessage(IntPtr hWnd, int msg, int wParam, ref TVITEM lParam);

public static extern void SendMessage(IntPtr hWnd, int msg, int wParam, ref LVITEM lParam);

public static extern void SendMessage(IntPtr hWnd, int msg, int wParam, ref HDITEM lParam);

public static extern void SendMessage(IntPtr hWnd, int msg, int wParam, ref HD_HITTESTINFO hti);

/// <summary>

/// 该函数将一个动静放入(寄送)到与指定窗口创建的线程相联系动静行列队伍里

/// </summary>

public static extern IntPtr PostMessage(IntPtr hWnd, int msg, int wParam, int lParam);

public static extern IntPtr SetWindowsHookEx(int hookid, HookProc pfnhook, IntPtr hinst, int threadid);

[DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]

public static extern bool UnhookWindowsHookEx(IntPtr hhook);

[DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]

public static extern IntPtr CallNextHookEx(IntPtr hhook, int code, IntPtr wparam, IntPtr lparam);

/// <summary>

/// 该函数对指定的窗口设置键盘焦点。

/// </summary>

public static extern IntPtr SetFocus(IntPtr hWnd);

/// <summary>

/// 该函数在指定的矩形里写入格局化文本,按照指定的要领对文本格局化(扩展的制表符,字符对齐、折行等)。

/// </summary>

public extern static int DrawText(IntPtr hdc, string lpString, int nCount, ref RECT lpRect, int uFormat);

/// <summary>

/// 该函数转变指定子窗口的父窗口。

/// </summary>

public extern static IntPtr SetParent(IntPtr hChild, IntPtr hParent);

/// <summary>

/// 获取对话框中子窗口控件的句柄

/// </summary>

public extern static IntPtr GetDlgItem(IntPtr hDlg, int nControlID);

/// <summary>

/// 该函数获取窗口客户区的坐标。

/// </summary>

public extern static int GetClientRect(IntPtr hWnd, ref RECT rc);

/// <summary>

/// 该函数向指定的窗体添加一个矩形,然后窗口客户区域的这一部分将被从头绘制。

/// </summary>

public extern static int InvalidateRect(IntPtr hWnd, IntPtr rect, int bErase);

/// <summary>

/// 该函数孕育产生对其他线程的控制,,如果一个线程没有其他动静在其动静行列队伍里。

/// </summary>

public static extern bool WaitMessage();

/// <summary>

/// 该函数为一个动静查抄线程动静行列队伍,并将该动静(如果存在)放于指定的布局。

/// </summary>

public static extern bool PeekMessage(ref MSG msg, int hWnd, uint wFilterMin, uint wFilterMax, uint wFlag);

/// <summary>