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)

黄舟
Libérer: 2017-03-14 13:40:06
original
2176 Les gens l'ont consulté

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
Copier après la connexion

Ajouter une déclaration WindowsAPI :

        [DllImport("user32.dll")]
        private static extern IntPtr LoadCursorFromFile(string fileName);
Copier après la connexion

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;
        }
Copier après la connexion

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);
        }
Copier après la connexion

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

dans else< de la méthode ShowForm. 🎜>Ajouter la condition :

this.Cursor = cursorDefault;
Copier après la connexion
Copier après la connexion
Ajouter du code dans la méthode ExitCutImage :

this.Cursor = cursorDefault;
Copier après la connexion
Copier après la connexion
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;
        }
Copier après la connexion
constructeur

du Form1 :

Form1_Init();
Copier après la connexion
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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!