Les fenetres-labview-ne-sont-pas-toutes-rectangulaires
1. Generated by Jive SBS on 2014-09-04-05:00
1
luc desruelle's Blogue: Les fenêtres LabVIEW
ne sont pas toutes rectangulaires
Publié par luc desruelle 13 mars 2014
0] Introduction
Il existe sur internet plusieurs exemples, très intéressants, de code LabVIEW pour avoir des
fenêtres qui ne sont pas rectangulaires.
Tous les exemples utilisent le même code, qui permet via la dll Windows "user32.dll"
fonction SetLayerdWindowAttributs, de :
> rendre transparent l'ensemble des pixels d'une couleur spécifiée de la face-avant ;
> gérer l'opacité de la fenêtre.
2. luc desruelle's Blogue: Les fenêtres LabVIEW ne sont pas toutes rectangulaires
Generated by Jive SBS on 2014-09-04-05:00
2
http://msdn.microsoft.com/en-us/library/windows/desktop/ms633540(v=vs.85).aspx
L'intérêt est :
1. principalement esthétiquepour les spash screen, Cf Wikipédia : la toute première fenêtre affichée par un
logiciel. Cette fenêtre incite l'utilisateur à patienter pendant le chargement et l'installation d'un logiciel tout
en lui apportant diverses informations comme le nom du logiciel, le nom de l'éditeur, le logo de l'éditeur ou
du logiciel, les droits d'auteur associés au logiciel, la version et l'état du chargement du logiciel.
2. insérer des fenêtres "particulières"
3. opacité, afin de permettre une comparaison par superposition de plusieurs fenêtres
Je vais montrer un exemple avec ma photo suivante
3. luc desruelle's Blogue: Les fenêtres LabVIEW ne sont pas toutes rectangulaires
Generated by Jive SBS on 2014-09-04-05:00
3
I] Certains codes incomplets
Certains exemples sont incomplets, car ils ne fonctionnent qu’avec des « jeux »
de couleurs particuliers.
Le problème provient de la différence de gestion des couleurs entre LabVIEW et Microsoft :
RGB VS BGR >>> COLORREF value has the following hexadecimal form : 0x bbggrr
Par exemple http://forums.ni.com/t5/LabVIEW/Darren-s-Weekly-Nugget-04-17-2006/m-p/
352929?vie w=by_date_ascending#M179807
ou le très bon post de DaHelmut
4. luc desruelle's Blogue: Les fenêtres LabVIEW ne sont pas toutes rectangulaires
Generated by Jive SBS on 2014-09-04-05:00
4
II] Rendre Transparent Des Pixels - Fonction Set Window
Color To Transparent
D’autres exemples sont très complets, et fonctionnent avec toutes les couleurs,
car ils convertissent la couleur RGB de LabVIEW en BGR pour Windows
Par exemple une référence : https://decibel.ni.com/content/blogs/
labviewramblings/2013/11/30/groovy-splash-s creen
Je ne sais pas qui est la première personne à avoir réalisé le code. J'ai réalisé un vi modifié,
avec la documentation du code et en intégrant directement le Get Window Handle.vi
5. luc desruelle's Blogue: Les fenêtres LabVIEW ne sont pas toutes rectangulaires
Generated by Jive SBS on 2014-09-04-05:00
5
Pour utiliser le code il faut ouvrir la référence du vi via puis
par exemple
6. luc desruelle's Blogue: Les fenêtres LabVIEW ne sont pas toutes rectangulaires
Generated by Jive SBS on 2014-09-04-05:00
6
La fenêtre est alors transparente mais ... avec une bordure!
III] Une fenêtre sans bordure
La transparence ne va pas suffir. En effet la fenêtre a encore la bordure. Il faut modifier les
options de la fenêtre pour avoir
devient
La fenêtre n'est plus rectangulaire! Mais n'est plus une fenêtre, car comment la fermer?
IV] Fermer la fenêtre sans bordure
il faut ajouter un bouton "croix" pour fermer...
Toutes les formes sont possibles.
7. luc desruelle's Blogue: Les fenêtres LabVIEW ne sont pas toutes rectangulaires
Generated by Jive SBS on 2014-09-04-05:00
7
Même un "Petit poisson" voir le code en PJ
Luc Desruelle |
| Voir mon profil
CLA : Certified LabVIEW Architect / Certifié Architecte LabVIEW
CLD : Certified LabVIEW Developer / Certifié Développeur LabVIEW
Contact , About me. , Google+. , Twitter.
Pièces jointes:
• Poisson.vi (53.2 K)
• Luc IHM Set Window Color to Transparent.vi (27.8 K)
304 Visualiser Tags : labview, code, france, transparent, opacity, window, transparency, pixels, desruelle,
certifié, développeur, luc, face-avant, developpeur, chambery, rhône-alpes, avoir, fenêtres, rectangulaires,
setlayerdwindowattributs, layered, rendre, ronde, certifiée, chambéry, anncey
22 mars 2014 14:47 djaune
Bonjour,
8. luc desruelle's Blogue: Les fenêtres LabVIEW ne sont pas toutes rectangulaires
Generated by Jive SBS on 2014-09-04-05:00
8
j'ai regardé avec attention votre post sur les fenêtres non rectangulaires, merci pour ce
travail.
Je voudrais bien une précision sur un point qui me surprend un peu : même sans exécuter
le VI, le poisson est déjà animé...
j'avoue que je ne sais pas comment on parvient à ce résultat !
car l'objet est une simple commande U16 ???? (comment associer cette commande avce un
gif animé par exemple???)
Merci d'avance pour une brève explication,
23 mars 2014 16:23 luc desruelle djaune en réponse à
Bonjour et merci. L’objet est un pictures Ring ou menu déroulant d’images, qui
représente une ou plusieurs images, et il est possible d’insérer un GIF animé. Ce
type de contrôle est un entier, la valeur indiquant le numéro de l’image dans le
menu déroulant.
plus d'infos sur le lien
Un GIF animé pour éviter de faire du code
A+
15 avr. 2014 18:26 DaHelmut
Très bonnes explications Luc
J'avoue que j'ai jamais fait attention au point que tu soulignes entre couleur RGB de
LabVIEW et BGR de Windows ! Bon a savoir ! J'ai toujours utilisé la même couleur jusqu'à
présent et ça a toujours fonctionné
9. luc desruelle's Blogue: Les fenêtres LabVIEW ne sont pas toutes rectangulaires
Generated by Jive SBS on 2014-09-04-05:00
9
J'aime bien cette technique pour simuler des tableaux de bord dans l'automobile et
l'agricole.
Kudos !
++
16 avr. 2014 02:05 luc desruelle DaHelmut en réponse à
Salut DaHelmut, Il est vrai que ton exemple était super sympa !