Salut !
Génial tout ça. Comment faire pour récupérer l'icone de l'appli dans la barre Windows car une fois la forme découpée il n'y a plus de nom d'appli !
Merci à tous.
-- Tas --
ymerej, pour une découpe simple garde
"Private Sub Form_Load"
et
"Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)" pour deplacement !!
voili et merci ..
ryl....
Pas mal la methode pr deplacer la fenetre !!!
Avant j'utilisais une methode artisanale et ca ramé !
Maintenant c nickel !
Désolé pr le double post d'avant !
Pourré t'on me donner le code exact qui permet de decouper automatiquement une image dans une fenetre svp ca seré cool !
Rien que çà pas d'animation rien, juste pr decouper une image au moment ou on créer la fenetre afin qu'elle prenne la forme de l'image.
@+ Merci d'avance
Sinon rylryl bravo pr ta source c un super boulot le resultat est super !
Pourré t'on me donner le code exact qui permet de decouper automatiquement une image dans une fenetre svp ca seré cool !
Rien que çà pas d'animation rien, juste pr decouper une image au moment ou on créer la fenetre afin qu'elle prenne la forme de l'image.
@+ Merci d'avance
Sinon rylryl bravo pr ta source c un super boulot le resultat est super !
The Hacker : dans ma source, je découpe selon un texte, mais elle s'applique aussi rapidement sur une image. J'ai pris du texte pour m'éviter de grossir le zip avec une image ! Ta deuxième méthode est très bien aussi mais elle est limitée à Windows 2000/XP où l'API SetLayeredWindowAttributes est définie, et elle est donc incompatibles avec les autres versions de Windows, ce qui la rend beaucoup moins pratique pour un programme qui doit être déployé par exemple.
oui oui j'ai regardé, j'sais que cette source decoupe une image mais j'ai vu dans ton exmeple qu'elle faisait un texte "SALUT" sinon c une variante ca peut etre utile.
sinon j'ai encore une autre méthode qui consiste a utiliser les APIs de transparence d'un form, ya un parametres qui permet d'enlever une couleur du form, i lsuffit donc de mettre l'image sur un fond vert par exemple et d'utilise rl'API pour enelver le vert du form, c tres rapide et efficace. voici le boup de code:
***********MODULE*********************
Public Declare Function GetWindowLong Lib "User32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Public Declare Function SetWindowLong Lib "User32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function SetLayeredWindowAttributes Lib "User32" (ByVal hWnd As Long, ByVal crey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
Public Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As Long
Public Const GWL_EXSTYLE = (-20)
Public Const WS_EX_LAYERED = &H80000
Public Const WS_EX_TRANSPARENT = &H20&
Public Const LWA_ALPHA = &H2&
***********MODULE*********************
'********************FORM
Dim lOldStyle As Long
Dim crk As Long
crk = GetPixel(Me.hdc, 0, 0)
Dim bTrans As Byte ' The level of transparency (0 - 255)
lOldStyle = GetWindowLong(Me.hWnd, GWL_EXSTYLE)
'cet API determine si on peut clicker sur la form ou non....
SetWindowLong Me.hWnd, GWL_EXSTYLE, lOldStyle Or WS_EX_LAYERED
'SetWindowLong Me.hwnd, GWL_EXSTYLE, lOldStyle Or WS_EX_LAYERED Or WS_EX_TRANSPARENT
SetLayeredWindowAttributes Me.hWnd, crk, 255, &H3
Private Declare Function BeginPath Lib "gdi32" (ByVal hdc As Long) As Long
Private Declare Function EndPath Lib "gdi32" (ByVal hdc As Long) As Long
Private Declare Function PathToRegion Lib "gdi32" (ByVal hdc As Long) As Long
Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
Private Sub Form_Load()
Dim hRgn As Long
Me.FontName = "Times New Roman"
Me.FontSize = 72
Me.BackColor = vbRed
BeginPath Me.hdc
Me.Print "SALUT !"
EndPath Me.hdc
hRgn = PathToRegion(Me.hdc)
SetWindowRgn Me.hWnd, hRgn, True
DeleteObject hRgn
End Sub
Même si la découpe de la feuille ne prend pas trop de temps, tu aurais pu faire encore bien plus rapide en utilisant ls fonction GetDIBIts plutôt que la fonction GetPixel ! Voir ma source nommée D&coupage de feuille rapide pour t'en convaincre ;-)
Sinon, c'est pas mal, c'est sympa et original comme anim ;-)
Génial tout ça. Comment faire pour récupérer l'icone de l'appli dans la barre Windows car une fois la forme découpée il n'y a plus de nom d'appli !
Merci à tous.
-- Tas --
"Private Sub Form_Load"
et
"Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)" pour deplacement !!
voili et merci ..
ryl....
Avant j'utilisais une methode artisanale et ca ramé !
Maintenant c nickel !
Désolé pr le double post d'avant !