ホームページ >バックエンド開発 >C#.Net チュートリアル >C# 開発例 - スクリーンショットにマウス ポインターの形状を含むカスタマイズされたスクリーンショット ツール (10)

C# 開発例 - スクリーンショットにマウス ポインターの形状を含むカスタマイズされたスクリーンショット ツール (10)

黄舟
黄舟オリジナル
2017-03-14 13:41:472244ブラウズ

ヘルプドキュメントを書くとき、画像もマウスポインターの形をしていると、より直観的で親しみやすいものになります。次に、スクリーンショットにマウス ポインターの形状を含める方法について説明します。

構造体 CURSORIINFO を追加:

[StructLayout(LayoutKind.Sequential)]
        struct CURSORINFO
        {
            public int cbSize;
            public int flags;
            public IntPtr hCursor;
            public Point ptScreenPos;
        }

宣言 API:

        [DllImport("user32.dll")]
        static extern bool GetCursorInfo(out CURSORINFO pci);

列挙値を定義:

private const int CURSOR_SHOWING = 0x00000001;

メソッドを追加:

        /// <summary>
        /// 将鼠标指针形状绘制到屏幕截图上
        /// </summary>
        /// <param name="g"></param>
        private void DrawCursorImageToScreenImage(ref Graphics g)
        {
            if (!this.IsCutCursor) { return; }

            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);
            Rectangle vRectangle = new Rectangle(new Point(vCurosrInfo.ptScreenPos.X - vCursor.HotSpot.X, 
            vCurosrInfo.ptScreenPos.Y - vCursor.HotSpot.Y), vCursor.Size);

            vCursor.Draw(g, vRectangle);
        }

メソッド呼び出しを追加:

OK、スクリーンショットを撮り、見てください!


以上がC# 開発例 - スクリーンショットにマウス ポインターの形状を含むカスタマイズされたスクリーンショット ツール (10)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。