Maison  >  Article  >  développement back-end  >  Exemple de développement C# - outil de capture d'écran personnalisé (9) utilisant un curseur personnalisé et un curseur lors de la prise de captures d'écran QQ (image)

Exemple de développement C# - outil de capture d'écran personnalisé (9) utilisant un curseur personnalisé et un curseur lors de la prise de captures d'écran QQ (image)

黄舟
黄舟original
2017-03-14 13:40:062183parcourir

Lorsque vous utilisez la fonction de capture d'écran de QQ, pensez-vous que son curseur est cool ? Aujourd'hui, je vais parler de la façon d'appliquer un curseur personnalisé et d'utiliser le curseur de capture d'écran QQ dans notre outil de capture d'écran.

Ouvrir la ressource :


Passer à la ressource de fichier Afficher :


Ouvrez le répertoire du fichier de ressources et copiez le fichier du curseur dans ce répertoire :


Curseur requisTéléchargement du fichier : C#Exemple de développement logiciel. Personnalisez le fichier de curseur utilisé dans votre propre outil de capture d'écran

Sélectionnez le répertoire de la Ressource, actualisez, affichez le curseur. fichier qui vient d'être copié :

Sélectionnez le fichier curseur et faites-le glisser vers la vue fichier de la ressource :


La première lettre du mot dans le nom de la ressource est remplacée par une majuscule.

Aperçu du curseur :


Ajouter une variable privée dans Pourclasse m1 :

        #region 自定义光标
        System.Windows.Forms.Cursor cursorCross = null;
        System.Windows.Forms.Cursor cursorDefault = null;
        System.Windows.Forms.Cursor cursorText = null;
        System.Windows.Forms.Cursor cursorColor = null;
        #endregion

Ajouter une déclaration WindowsAPI :

        [DllImport("user32.dll")]
        private static extern IntPtr LoadCursorFromFile(string fileName);

Ajouter une méthode pour obtenir le curseur à partir des ressources existantes :

        /// <summary>
        /// 从已有资源中获得光标
        /// </summary>
        /// <param name="resource"></param>
        /// <returns></returns>
        public static Cursor getCursorFromResource(byte[] resource)
        {
            byte[] b = resource;
            FileStream fileStream = new FileStream("cursorData.dat", FileMode.Create);
            fileStream.Write(b, 0, b.Length);
            fileStream.Close();
            Cursor cur = new Cursor(LoadCursorFromFile("cursorData.dat"));
            return cur;
        }

Ajouter une initialisation de fenêtre Programme de gestion des événements , ajouter un curseur personnalisé :

        /// <summary>
        /// 窗口初始化事件处理程序
        /// </summary>
        private void Form1_Init()
        {
            this.isCuting = false;
            this.beginPoint = new Point(0, 0);
            this.endPoint = new Point(0, 0);

            cursorDefault = getCursorFromResource(Properties.Resources.Cursor_Default);
            cursorCross = getCursorFromResource(Properties.Resources.Cursor_Cross);
            cursorText = getCursorFromResource(Properties.Resources.Cursor_Text);
            cursorColor = getCursorFromResource(Properties.Resources.Cursor_Color);
        }

Définir le curseur par défaut, gérer le statut du curseur  :

dans elseAjouter la condition :

this.Cursor = cursorDefault;
Ajouter du code dans la méthode ExitCutImage :

this.Cursor = cursorDefault;
Ajouter la souris pour entrer dans le gestionnaire d'événements du formulaire Form1 :

Ajouter codez le
        /// <summary>
        /// 鼠标进入Form1窗体事件处理程序
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Form1_MouseEnter(object sender, EventArgs e)
        {
            this.Cursor = cursorDefault;
        }
constructeur

du Form1 :

Form1_Init();
Ok, compilez, faites une capture d'écran pour voir l'effet !


Plusieurs fichiers de curseur ont été ajoutés ici, mais un seul est utilisé

D'autres seront utilisés dans les fonctions ajoutées à l'avenir.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn