?? nativemethods.cs
字號:
using System;
using System.Drawing;
using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace BrightIdeasSoftware
{
/// <summary>
/// Wrapper for all native method calls on ListView controls
/// </summary>
internal class NativeMethods
{
private const int LVM_FIRST = 0x1000;
private const int LVM_SCROLL = LVM_FIRST + 20;
private const int LVM_GETHEADER = LVM_FIRST + 31;
private const int LVM_GETCOUNTPERPAGE = LVM_FIRST + 40;
private const int LVM_SETITEMSTATE = LVM_FIRST + 43;
private const int LVM_SETEXTENDEDLISTVIEWSTYLE = LVM_FIRST + 54;
private const int LVM_SETITEM = LVM_FIRST + 76;
private const int LVM_GETCOLUMN = LVM_FIRST + 95;
private const int LVM_SETCOLUMN = LVM_FIRST + 96;
private const int LVS_EX_SUBITEMIMAGES = 0x0002;
private const int LVIF_TEXT = 0x0001;
private const int LVIF_IMAGE = 0x0002;
private const int LVIF_PARAM = 0x0004;
private const int LVIF_STATE = 0x0008;
private const int LVIF_INDENT = 0x0010;
private const int LVIF_NORECOMPUTE = 0x0800;
private const int LVCF_FMT = 0x0001;
private const int LVCF_WIDTH = 0x0002;
private const int LVCF_TEXT = 0x0004;
private const int LVCF_SUBITEM = 0x0008;
private const int LVCF_IMAGE = 0x0010;
private const int LVCF_ORDER = 0x0020;
private const int LVCFMT_LEFT = 0x0000;
private const int LVCFMT_RIGHT = 0x0001;
private const int LVCFMT_CENTER = 0x0002;
private const int LVCFMT_JUSTIFYMASK = 0x0003;
private const int LVCFMT_IMAGE = 0x0800;
private const int LVCFMT_BITMAP_ON_RIGHT = 0x1000;
private const int LVCFMT_COL_HAS_IMAGES = 0x8000;
private const int HDM_FIRST = 0x1200;
private const int HDM_HITTEST = HDM_FIRST + 6;
private const int HDM_GETITEM = HDM_FIRST + 11;
private const int HDM_SETITEM = HDM_FIRST + 12;
private const int HDI_WIDTH = 0x0001;
private const int HDI_TEXT = 0x0002;
private const int HDI_FORMAT = 0x0004;
private const int HDI_BITMAP = 0x0010;
private const int HDI_IMAGE = 0x0020;
private const int HDF_LEFT = 0x0000;
private const int HDF_RIGHT = 0x0001;
private const int HDF_CENTER = 0x0002;
private const int HDF_JUSTIFYMASK = 0x0003;
private const int HDF_RTLREADING = 0x0004;
private const int HDF_STRING = 0x4000;
private const int HDF_BITMAP = 0x2000;
private const int HDF_BITMAP_ON_RIGHT = 0x1000;
private const int HDF_IMAGE = 0x0800;
private const int HDF_SORTUP = 0x0400;
private const int HDF_SORTDOWN = 0x0200;
private const int SB_HORZ = 0;
private const int SB_VERT = 1;
private const int SB_CTL = 2;
private const int SB_BOTH = 3;
private const int SIF_RANGE = 0x0001;
private const int SIF_PAGE = 0x0002;
private const int SIF_POS = 0x0004;
private const int SIF_DISABLENOSCROLL = 0x0008;
private const int SIF_TRACKPOS = 0x0010;
private const int SIF_ALL = (SIF_RANGE | SIF_PAGE | SIF_POS | SIF_TRACKPOS);
private const int ILD_NORMAL = 0x00000000;
private const int ILD_TRANSPARENT = 0x00000001;
private const int ILD_MASK = 0x00000010;
private const int ILD_IMAGE = 0x00000020;
private const int ILD_BLEND25 = 0x00000002;
private const int ILD_BLEND50 = 0x00000004;
[StructLayout(LayoutKind.Sequential)]
public struct HDITEM
{
public int mask;
public int cxy;
public IntPtr pszText;
public IntPtr hbm;
public int cchTextMax;
public int fmt;
public IntPtr lParam;
public int iImage;
public int iOrder;
//if (_WIN32_IE >= 0x0500)
public int type;
public IntPtr pvFilter;
}
[StructLayout(LayoutKind.Sequential)]
public class HDHITTESTINFO
{
public int pt_x;
public int pt_y;
public int flags;
public int iItem;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
public struct LVCOLUMN
{
public int mask;
public int fmt;
public int cx;
[MarshalAs(UnmanagedType.LPTStr)]
public string pszText;
public int cchTextMax;
public int iSubItem;
// These are available in Common Controls >= 0x0300
public int iImage;
public int iOrder;
};
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
public struct LVFINDINFO
{
public int flags;
public string psz;
public IntPtr lParam;
public int ptX;
public int ptY;
public int vkDirection;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
public struct LVHITTESTINFO
{
public int pt_x;
public int pt_y;
public int flags;
public int iItem;
public int iSubItem;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
public struct LVITEM
{
public int mask;
public int iItem;
public int iSubItem;
public int state;
public int stateMask;
[MarshalAs(UnmanagedType.LPTStr)]
public string pszText;
public int cchTextMax;
public int iImage;
public IntPtr lParam;
// These are available in Common Controls >= 0x0300
public int iIndent;
// These are available in Common Controls >= 0x056
public int iGroupId;
public int cColumns;
public IntPtr puColumns;
};
/// <summary>
/// Notify m header structure.
/// </summary>
[StructLayout(LayoutKind.Sequential)]
public struct NMHDR
{
public IntPtr hwndFrom;
public IntPtr idFrom;
public int code;
}
[StructLayout(LayoutKind.Sequential)]
public struct NMHEADER
{
public NMHDR nhdr;
public int iItem;
public int iButton;
public IntPtr pHDITEM;
}
[StructLayout(LayoutKind.Sequential)]
public struct NMLISTVIEW
{
public NativeMethods.NMHDR hdr;
public int iItem;
public int iSubItem;
public int uNewState;
public int uOldState;
public int uChanged;
public IntPtr lParam;
}
[StructLayout(LayoutKind.Sequential)]
public struct NMLVFINDITEM
{
public NativeMethods.NMHDR hdr;
public int iStart;
public NativeMethods.LVFINDINFO lvfi;
}
[StructLayout(LayoutKind.Sequential)]
public struct RECT
{
public int left;
public int top;
public int right;
public int bottom;
}
[StructLayout(LayoutKind.Sequential)]
public class SCROLLINFO
{
public int cbSize = Marshal.SizeOf(typeof(NativeMethods.SCROLLINFO));
public int fMask;
public int nMin;
public int nMax;
public int nPage;
public int nPos;
public int nTrackPos;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
public class TOOLINFO
{
public int cbSize = Marshal.SizeOf(typeof(NativeMethods.TOOLINFO));
public int uFlags;
public IntPtr hwnd;
public IntPtr uId;
public NativeMethods.RECT rect;
public IntPtr hinst = IntPtr.Zero;
public IntPtr lpszText;
public IntPtr lParam = IntPtr.Zero;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
public struct TOOLTIPTEXT
{
public NativeMethods.NMHDR hdr;
public string lpszText;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 80)]
public string szText;
public IntPtr hinst;
public int uFlags;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -