Page 1 sur 1

[R] Centrer une image sur splash

Posté : mer. 05 nov. 2014 22:03
par walkson
Bonsoir,
Je viens de me créer un UDF Splash avec texte et image sur la base de SplashTextOn.
Il comprend 2 fonctions, la première configure le splash comme SplashTextOn (sans le texte) et la deuxième lance le splash avec le texte et l'image. J'ai opté cette méthode pour éviter une fonction à rallonge.
Ma première question concerne Func config_splash et le jeu de "ping pong" entre les variables pour les avoir en Global. Existe t' il une autre méthode plus simple ?
Ma deuxième question concerne le centrage automatique de l'image dans le splash. J'utilise _GDIPlus_GraphicsDrawImage($hGraphic, $hBitmap, $iX, $iY) mais apparemment X et Y ne sont pas en pixel. J'ai fait plusieurs essais sans réussite.
Le script est fonctionnel sous Win 7 et Autoit v3.3.12.0
► Afficher le texte
Merci de votre aide et de vos conseils

Re: [..] Centrer une image sur splash

Posté : mer. 05 nov. 2014 23:09
par jguinch
- Tu peux récupérer la taille de ton image avec _GDIPlus_ImageGetWidth et _GDIPlus_ImageGetHeight.
- Tu peux récupérer la taille de la fenêtre (intérieur) avec WinGetClientSize()
Reste plus qu'à positionner l'image à l'appel de _GDIPlus_GraphicsDrawImage
► Afficher le texte

Re: [..] Centrer une image sur splash

Posté : jeu. 06 nov. 2014 14:53
par walkson
Bonjour,
Un grand merci à jguinch, sa solution est impeccable !
Mais j'aimerais une petite explication et plus particulièrement sur WinGetClientSize()
L'aide me renvoie à "Retrieves the size of a given window's client area." mais window's client area correspond à quoi ? SplashTextOn() serait considéré comme une "fenêtre annexe" ?
Et quelle est la différence avec WinGetPos() que j'avais utilisé sans résultat convenable ?

Re: [..] Centrer une image sur splash

Posté : jeu. 06 nov. 2014 15:20
par jguinch
Oui la fonction Splash te génère une fenêtre qui a ses propres propriétés : style, taille, position...
La fonction WinGetClientSize() te renvoie les dimensions intérieures de la fenêtre : c'est ce dont tu as besoin pour pouvoir positionner ton image.
Qu'est-ce que tu ne comprends pas ?

Re: [..] Centrer une image sur splash

Posté : jeu. 06 nov. 2014 15:45
par walkson
Si je te comprend, WinGetPos() donne les dimensions extérieurs et WinGetClientSize() les dimensions intérieurs que cela soit un splash ou une GUI...

Re: [..] Centrer une image sur splash

Posté : jeu. 06 nov. 2014 15:47
par jguinch
C'est ça

Re: [..] Centrer une image sur splash

Posté : jeu. 06 nov. 2014 15:55
par mikell
Question idiote, dans la mesure où le splash n'est rien d'autre qu'une gui pourquoi ne pas carrément te faire ta gui avec un GuiCtrlCreatePic ?
► Afficher le texte

Re: [..] Centrer une image sur splash

Posté : jeu. 06 nov. 2014 16:35
par walkson
@jguinch Merci pour la réponse
@ Mikell Tout simplement je ne savais pas que le splash était une GUI (dans le sens guicreate() ) Le fait aussi qu'il y a SplashImageOn et SplashTextOn m'a laissé penser à une limite que je venais de contourner (un peu comme les limites de MsgBox si je me fais comprendre) Après le splash est facile d'utilisation
Ps ton exemple est super (malgrès la pub clandestine :wink: )