C#获取系统当前鼠标的图案代码如下:
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);
}
分享到:
相关推荐
在本文中,我们将深入探讨如何使用C#编程语言创建一个Winform画图板应用程序,该程序具有类似于Windows内置画图工具的功能。这个项目的核心在于利用Windows Forms(Winform)库来构建用户界面,并通过GDI+图形处理...
5. **实时绘图**:在`MouseMove`事件中,我们需要获取当前鼠标位置,使用`Graphics`对象的`DrawLine`或`DrawCurve`方法动态地绘制线条。为了保证平滑的绘图体验,可以使用双缓冲技术,即先在内存中完成绘图,然后一...
在MouseMove事件中,根据鼠标的当前位置更新Graphics对象进行绘制。确保在每次MouseMove事件后调用`Invalidate`方法,这会触发重新绘制,使得新的线条出现在画布上。 ```csharp private Point startPt; private ...
获取到Graphics对象后,可以调用DrawLine方法,根据鼠标按下和移动时的坐标绘制线段。为了实现不同颜色和粗细的画笔,我们可以提供颜色选择器和笔刷宽度滑动条,并相应地改变Pen对象的Color和Width属性。 为了实现...
// 创建一个Graphics对象,从当前窗体获取 Graphics g = this.CreateGraphics(); // 创建一个Pen对象,用于画线 Pen myPen = new Pen(Color.Black, 2); // 创建一个Brush对象,用于填充矩形 SolidBrush ...
通过这些事件,我们可以获取鼠标的当前位置,并在Graphics对象上绘制相应的图形。 7. **坐标系统**:在C#的图形编程中,我们使用笛卡尔坐标系统,其中(0, 0)位于屏幕的左上角。了解这个坐标系统对于准确地绘制图形...
当鼠标按下时记录当前位置,然后在鼠标移动时更新控件的位置。确保在`MouseMove`事件中检查`Button`属性以确认鼠标按钮是否仍被按下。 5. **添加到工具栏**:为了让用户能够方便地在应用程序中使用这个自定义控件,...
你可以从控件或Form的CreateGraphics方法获取Graphics对象,然后调用它的DrawLine、DrawRectangle、DrawEllipse等方法进行绘制。 2. Pen类:Pen对象定义了线条的样式、宽度和颜色。在画线或绘制轮廓时,你需要创建...
- 通过`e.Graphics`参数获取Graphics对象,这个对象与当前控件关联,可以在此上进行绘图。 - 使用`using`语句管理Pen和Brush对象,确保它们在使用后被正确释放。 3. **绘制基本形状**: - **线条**:使用`...
在这个方法中,我们将用到Graphics对象,通过e.Graphics获取当前Paint事件的绘图环境。例如: ```csharp protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); Graphics g = e.Graphics; //...
你可以从Graphics对象中获取一个设备上下文,然后在这个上下文中进行绘制。例如,使用Graphics.DrawRectangle方法画出矩形,Graphics.DrawString方法绘制文本。 3. **Pen与Brush** Pen类用于定义线条的样式,如...
`Pen`对象用于定义线条的样式、颜色和宽度,而`Brush`对象则用于填充形状的颜色或图案。在绘制阴影时,我们可能需要创建多个`Pen`和`Brush`对象以实现不同的效果。 5. **阴影效果实现**: 阴影通常通过偏移画布...
1. **创建Graphics对象**:通常从Control或Form的CreateGraphics方法获取,或者在PrintDocument的PrintPage事件中使用。 2. **设置绘图环境**:如选择Pen和Brush,设置绘图颜色和线型。 3. **绘制图形**:使用...
案例6.7 动态获取系统当前目录及程序当前目录 案例6.8 文件属性的查看与修改 案例6.9 桌面图标和驱动器的显示与隐藏 案例6.10 禁示修改IE浏览器的主页 本章小结 第7章 硬件处理技术 案例7.1 计算机的注销、...
玩家通过鼠标点击两张相同的图案,如果这两张图案之间能够通过不多于两次转向(包括直接相连)的直线连接起来,则这两张图案被消除。一旦游戏界面上的所有图案都被消除,玩家即赢得游戏。 #### 设计目的 设计这款...
你可以通过`Control.CreateGraphics()`方法获取当前控件的`Graphics`对象。 4. 笔刷和画笔:在C#中,`Pen`类用于定义线条的颜色、宽度和样式,而`Brush`类则用于定义填充颜色和图案。例如,你可以创建一个`...
首先,你需要获取Graphics对象,这通常是通过e.Graphics参数获得,该参数是PaintEventArgs类型的,包含了当前控件的绘图环境。然后,你可以利用这个Graphics对象开始绘制图形。 例如,如果你想在窗体上画一个红色的...