1
我正在开发一个screeshot应用程序。我想抓住真正的光标在位图上绘制它。
我有两个实现:在前者光标显示正常,但它总是默认光标;而在后者中,光标有时会被很好地绘制,有时它不会被更新和绘制。
有什么办法可以合并这些实现的积极方面吗?绘制真实光标的问题
第一:
Point cursorPosition = Cursor.Position;
if (_bitmapRectangle.Contains(cursorPosition))
{
Point relativeCursorPosition = new Point(cursorPosition.X - _bitmapRectangle.Location.X, cursorPosition.Y - _bitmapRectangle.Location.Y);
Cursor.Draw(graphics, new Rectangle(relativeCursorPosition, Cursor.Size));
}
二:
Point cursorPosition = Cursor.Position;
using (Cursor cursor = Cursor.Current)
{
if (_bitmapRectangle.Contains(cursorPosition))
{
Point relativeCursorPosition = new Point(cursorPosition.X - _bitmapRectangle.Location.X, cursorPosition.Y - _bitmapRectangle.Location.Y);
cursor.Draw(graphics, new Rectangle(relativeCursorPosition, cursor.Size));
}
}
看来,第二个解决方案时,我不使用默认的游标和工作不好当鼠标背景形式(和截图形式在前台)。
不,它捕获的时候,我指着一个不注重窗口 – Hamal000
上的东西,而我测试的代码错误的光标,它抛出一个NullReferenceException – Hamal000
我看到...当没有关注它很可能是Cursor.Current.Handle无效......目前没有新的想法,对不起:-( – Yahia