IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Utilisation de l'API Windows pour personnaliser des contrôles


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777
    Par défaut Utilisation de l'API Windows pour personnaliser des contrôles
    Il semble que l'utilisation de l'API Windows user32.dll soit courante pour ne pas dire indispensable dès que l'on veut personnaliser des contrôles Winforms (ce qui est un peu l'idée première d'un débutant qui souhaite se lancer dans la création de classes).

    Or, comme je l'expliquais ici, les exemples utilisant cet API sont assez difficile à reproduire ou à extrapoler.

    Je voudrais savoir si vous connaissez un tuto qui explique les rudiments concernant cet API pour l'utiliser dans la personnalisation de contrôles.

    J'ai cherché mais je suis surtout tombé sur des dictionnaires du contenu de cette DLL sans que l'utilisation de ce contenu ne soti vraiment expliqué du point de vue de l'intérêt qu'on peut en tirer.

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    il n'est pas nécessaire de passer par une api pour modifier l'apparence des controles (à part un ou deux comme le textbox)

    la majorité des controles du framework sont codés en .net, il est donc possible de les adapter à ce qu'on veut faire
    en fait il y a une méthode paint sur chaque controle, appelé quand windows ou un autre controle décide qu'il faut redessiner le controle, ensuite c'est du draw tout simple

    par un exmple un label fait un drawstring, un picturebox fait un drawimage
    pour faire un bouton on peut faire un drawrectangle et un drawstring, le combobox permet aussi de changer le rendu des items etc...

    pour faire un bouton on peut donc faire un classe monbouton, marqué inherits button et faire un overrides de onpaint qui n'appelle mybase.onpaint
    ensuite on e.graphics.Draw ce qu'on veut (penser à mettre des try catch, parce que quand on débute ca peut planter dans visual studio si on fait des bugs)
    monbouton apparait ensuite dans la boite à outils et on peut poser des monbouton
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre éclairé
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777
    Par défaut
    Si on peut se passer de l'API, comment résoudrait-tu mon pb dans le prix que j'ai cité au post précédent ?
    Il semble que la difficulté se pose dès que l'on souhaite redessiner une partie du contrôle dans le cadre d'un Event.
    Dans le cas que j.exposais, il s.agit de redessiner la bordure sur l'événement ongotfocus.
    Si solution il y a, je n'en ai trouvé sur le net que basées sur l'API.

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    explique ton problème sur ce topic ou donne un lien vers le topic

    si c'est pour rajouter du contenu sur un controle spécifique, on peut s'abonner à l'event paint et dessiner sur e.Graphics
    ce qu'on dessine sera rajouté par dessus le dessin du controle
    pour avertir un controle qu'on veut qu'il se redessine il faut appeler lecontrole.invalidate (l'event paint sera appelé dans la foulée)

    si c'est pour modifier le dessin total il faut faire un inherits comme dit précédemment
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre éclairé
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777

  6. #6
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    ah oui c'était le lien du départ désolé ^^

    alors le textbox c'est une des exceptions à ce que je dis, il est géré en plus bas niveau par windows, il ne vaut mieux donc rien lui faire par du paint

    après je vois 2 options soit faire un usercontrol avec un textbox dedans, et c'est le backcolor du textbox qu'on modifie, soit faire un inherits textbox et dans dessiner sur son parent un rectangle autour du textbox
    les 2 ont des avantages et des inconvénients
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. Réponses: 8
    Dernier message: 01/03/2013, 15h06
  2. Utilisation de l'api criteria pour des join
    Par hugo123 dans le forum JPA
    Réponses: 0
    Dernier message: 04/02/2011, 11h46
  3. Une FAQ API Windows pour C
    Par O( N ) dans le forum C
    Réponses: 2
    Dernier message: 27/11/2006, 21h30
  4. api/windows pour extraire le nom de repertoire
    Par youssefinfo00 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 06/09/2006, 16h03
  5. [DOM] Utilisation de l'API DOM pour créer du HTML sous IE
    Par pedouille dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/01/2006, 14h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo