DLL : FENÊTRES MULTIFORMES, EFFET DE FONDU... XP ET 2000 UNIQUEMENT.
VicoLaChips2
Messages postés436Date d'inscriptiondimanche 20 janvier 2002StatutMembreDernière intervention 2 février 2010
-
8 juin 2002 à 18:56
dglaneuville
Messages postés1Date d'inscriptionvendredi 28 juillet 2006StatutMembreDernière intervention30 janvier 2010
-
30 janv. 2010 à 15:48
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
dglaneuville
Messages postés1Date d'inscriptionvendredi 28 juillet 2006StatutMembreDernière intervention30 janvier 2010 30 janv. 2010 à 15:48
Comment peut mettre + de 1 à une source si mal documentée et si.... j'trouve pas les mots
kzimir666
Messages postés44Date d'inscriptiondimanche 27 avril 2003StatutMembreDernière intervention24 septembre 2006 2 juin 2003 à 22:05
comment obtiens-t-on le handle de la fenêtre ?
Peux-tu donner un exemple d'appel de ta fonction avec des noms et des valeurs... Ce sera plus facile à comprendre...
(un débutant qui veut apprendre)
cs_Agaga
Messages postés36Date d'inscriptionmercredi 11 avril 2001StatutMembreDernière intervention14 septembre 2006 11 juin 2002 à 21:41
ouai mais ça ne génère pas de code en plus et donc il n'y a aucune inflence sur les perfs ou la taille de l'app donc c'est un problème pas vraiement....problématique.
Mais si vraiement tu veux connaître le systeme utilise la fonction GetSystemInfo.
ben en fait, tu peux pas mettre de on error goto avant la declaration des api, c'est ca le pb
cs_Agaga
Messages postés36Date d'inscriptionmercredi 11 avril 2001StatutMembreDernière intervention14 septembre 2006 10 juin 2002 à 22:19
pas besoin, normalement le code de la dll gère ça : avec un on error goto ...
maintenant si tu tiens vraiement à détecter l'os voir api :
Declare Sub GetSystemInfo Lib "kernel32" Alias "GetSystemInfo" (lpSystemInfo As SYSTEM_INFO)
evidemment ke ca ne, marche pas sous win9x, l'api SetLayeredWindowAttributes n'existe ke depuis win2000.
dailleurs, si kelkun a une idee geniale pour detecter l'os pour savoir s'il faut declarer l'api ou pas, un truc du genre
#if OS="Win2k" then
public declare function SetLayeredWindowAttributes(etc, etc...) as long
#end if
paske j'ai pas encore trouvé le moyen de le faire
je sais seulement reconnaitre win16 du win32 pour info c'est
#if win16 then
blabla...
#elseif win32 then
blablabla...
#end if
bon si kelkun a une idee, laissez moi un message
a plus, AdCr
cs_Agaga
Messages postés36Date d'inscriptionmercredi 11 avril 2001StatutMembreDernière intervention14 septembre 2006 9 juin 2002 à 14:38
Manson :
C'est exactement ce que j'ai fait... Je l'ai mise dans une dll pour en failiter l'utilisation(plus de déclaration d'api, de problèmes avec les constantes...)
cs_Manson
Messages postés137Date d'inscriptionlundi 17 décembre 2001StatutMembreDernière intervention30 septembre 2004 9 juin 2002 à 07:43
Mouarf !
Autant chopper la fonction SetLayeredWindowAttributes(), dans shell32.dll, elle fait exactement la meme chose que la tienne !
Enfin bon, bon travail quand meme !
lumesh
Messages postés564Date d'inscriptionjeudi 21 février 2002StatutMembreDernière intervention 7 novembre 2008 8 juin 2002 à 22:14
marche po ss win95 ! domage !
cs_Agaga
Messages postés36Date d'inscriptionmercredi 11 avril 2001StatutMembreDernière intervention14 septembre 2006 8 juin 2002 à 21:15
heu... je croyais l'avoir fait... A moins que tu ne parles du code de la DLL?
cs_theboss
Messages postés10Date d'inscriptionlundi 15 avril 2002StatutMembreDernière intervention 7 juillet 2002 8 juin 2002 à 21:08
Tu pourrais un peu expliquer comment ca marche STP?
THEBOSs***
cs_Agaga
Messages postés36Date d'inscriptionmercredi 11 avril 2001StatutMembreDernière intervention14 septembre 2006 8 juin 2002 à 21:03
Vico :
Y'a pas de form car je n'ai pas prévu de test...
Mais si tu veux le tester c'est très simple :
Charge mon projet DLL
dans le menu Fichier choisi Ajouter un projet...
Ensuite choisi "exe standard" et dans le menu "projet->Références" coche "fenêtres multiformess AGAGA - <|:O)".
choisi comme image de fond de la fenêtre une image contenant par exemple du noir (et d'autres couleurs quand même...)
ensuite dans Form_Load entre :
bln=FORME(me.hwnd,vbblack,191,MF_Opacity OR MF_TransparencyColor)
si bln renvoie true alors pas de probleme sinon, soit t'as pas la bonne version de windows...soit y'a un bug :)
voila, c'est pas plus compliqué !
VicoLaChips2
Messages postés436Date d'inscriptiondimanche 20 janvier 2002StatutMembreDernière intervention 2 février 20102 8 juin 2002 à 19:50
ouais mais ya pas de form pour tester dans ton zip ?? juste le module :)
Alors bon... Dépèche toi de l'uploader au complet !! @+
VicoLaChips2
Messages postés436Date d'inscriptiondimanche 20 janvier 2002StatutMembreDernière intervention 2 février 20102 8 juin 2002 à 18:56
30 janv. 2010 à 15:48
2 juin 2003 à 22:05
Peux-tu donner un exemple d'appel de ta fonction avec des noms et des valeurs... Ce sera plus facile à comprendre...
(un débutant qui veut apprendre)
11 juin 2002 à 21:41
Mais si vraiement tu veux connaître le systeme utilise la fonction GetSystemInfo.
11 juin 2002 à 13:48
10 juin 2002 à 22:19
maintenant si tu tiens vraiement à détecter l'os voir api :
Declare Sub GetSystemInfo Lib "kernel32" Alias "GetSystemInfo" (lpSystemInfo As SYSTEM_INFO)
a+
10 juin 2002 à 12:41
dailleurs, si kelkun a une idee geniale pour detecter l'os pour savoir s'il faut declarer l'api ou pas, un truc du genre
#if OS="Win2k" then
public declare function SetLayeredWindowAttributes(etc, etc...) as long
#end if
paske j'ai pas encore trouvé le moyen de le faire
je sais seulement reconnaitre win16 du win32 pour info c'est
#if win16 then
blabla...
#elseif win32 then
blablabla...
#end if
bon si kelkun a une idee, laissez moi un message
a plus, AdCr
9 juin 2002 à 14:38
C'est exactement ce que j'ai fait... Je l'ai mise dans une dll pour en failiter l'utilisation(plus de déclaration d'api, de problèmes avec les constantes...)
9 juin 2002 à 07:43
Autant chopper la fonction SetLayeredWindowAttributes(), dans shell32.dll, elle fait exactement la meme chose que la tienne !
Enfin bon, bon travail quand meme !
8 juin 2002 à 22:14
8 juin 2002 à 21:15
8 juin 2002 à 21:08
THEBOSs***
8 juin 2002 à 21:03
Y'a pas de form car je n'ai pas prévu de test...
Mais si tu veux le tester c'est très simple :
Charge mon projet DLL
dans le menu Fichier choisi Ajouter un projet...
Ensuite choisi "exe standard" et dans le menu "projet->Références" coche "fenêtres multiformess AGAGA - <|:O)".
choisi comme image de fond de la fenêtre une image contenant par exemple du noir (et d'autres couleurs quand même...)
ensuite dans Form_Load entre :
bln=FORME(me.hwnd,vbblack,191,MF_Opacity OR MF_TransparencyColor)
si bln renvoie true alors pas de probleme sinon, soit t'as pas la bonne version de windows...soit y'a un bug :)
voila, c'est pas plus compliqué !
8 juin 2002 à 19:50
Alors bon... Dépèche toi de l'uploader au complet !! @+
8 juin 2002 à 18:56