using
System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential)]
struct
CURSORINFO
{
public
int
cbSize;
public
int
flags;
public
IntPtr hCursor;
public
Point ptScreenPos;
}
[DllImport(
"user32.dll"
)]
static
extern
bool
GetCursorInfo(
out
CURSORINFO pci);
private
const
int
CURSOR_SHOWING= 0x00000001;
private
void
button1_Click(
object
sender, EventArgs e)
{
CURSORINFO vCurosrInfo;
vCurosrInfo.cbSize = Marshal.SizeOf(
typeof
(CURSORINFO));
GetCursorInfo(
out
vCurosrInfo);
if
((vCurosrInfo.flags & CURSOR_SHOWING) != CURSOR_SHOWING)
return
;
Cursor vCursor =
new
Cursor(vCurosrInfo.hCursor);
Graphics vGraphics = Graphics.FromHwnd(Handle);
Rectangle vRectangle =
new
Rectangle(0, 0, 32, 32);
vGraphics.FillRectangle(
new
SolidBrush(BackColor), vRectangle);
vCursor.Draw(vGraphics, vRectangle);
}