HORLOGE DIGITALE

Signaler
Messages postés
47
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
19 juin 2004
-
Messages postés
64
Date d'inscription
lundi 25 août 2003
Statut
Membre
Dernière intervention
22 novembre 2011
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/19049-horloge-digitale

Messages postés
64
Date d'inscription
lundi 25 août 2003
Statut
Membre
Dernière intervention
22 novembre 2011

à première vue, ça a l'air élégant! YT
Messages postés
21
Date d'inscription
mardi 26 novembre 2002
Statut
Membre
Dernière intervention
15 avril 2004

Pour le always on top (fenêtre tjrs au-dessus des autres) :

Public Declare Function SetWindowPos Lib "user32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Public Const SWP_NOSIZE = &H1
Public Const SWP_NOMOVE = &H2
Public Const HWND_TOPMOST = -1
Public Const HWND_NOTOPMOST = -2
Public Sub EnableOnTop(hWnd As Long, bEnable As Boolean)
SetWindowPos hWnd, IIf(bEnable, HWND_TOPMOST, HWND_NOTOPMOST), 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
End Sub

Si C mis dans une Form, il faut déclarer en Private
Utilisation : EnableOnTop MaForm.hwnd, True pour activer et False pour désactiver.

Et tant qu'on y est : la transparence
Alors d'abord un code pour vérifier qu'on est bien sous 2000 / XP :
Public Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As Long
Public Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128
End Type
Public Function IsWin2KXP() As Boolean
Dim oviInfo As OSVERSIONINFO
oviInfo.dwOSVersionInfoSize = Len(oviInfo)
GetVersionEx oviInfo
If oviInfo.dwMajorVersion >= 5 Then
IsWin2KXP = True
End If
End Function

Si Is2KXP() = True, alors on peut envoyer la sauce
Toujours la meme remarque pour les forms...
Et le code pour la transparence proprement dit :

Public Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hWnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Boolean
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 GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Public Const WS_EX_LAYERED = &H80000
Public Const LWA_COLORKEY = &H1
Public Const LWA_ALPHA = &H2
Public Const GWL_EXSTYLE = (-20)
Public Sub EnableWindowAlpha(hWnd As Long, bEnable As Boolean)
Dim Wlng As Long
Wlng = GetWindowLong(hWnd, GWL_EXSTYLE)
If bEnable Then
SetWindowLong hWnd, GWL_EXSTYLE, Wlng + WS_EX_LAYERED
Else
SetWindowLong hWnd, GWL_EXSTYLE, Wlng - WS_EX_LAYERED
End If
End Sub

Public Sub SetWindowAlpha(hWnd As Long, bytAlpha As Byte)
SetLayeredWindowAttributes hWnd, 0, bytAlpha, LWA_ALPHA
End Sub

Utilisation : d'abord EnableWindowAlpha, puis SetWindowAlpha.
Plus bAlpha est grand, plus la Form est opaque

Après ca, ton prof de techno sera baba. ;-)
Messages postés
47
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
19 juin 2004

Et en passant, postez des comments sur mon code et pas sur mon texte.. à moins que vous n'avec rien d'autre à faire que lister mes quelques fautes comme nounours75. Je préfère envoyer des comments bourrés de fautes si il faut, qu'écrire des messages inutiles comme ca. Je suis d'ailleurs pas si pire.
Même si tu ne m'as pas personnellement visé, corrige les codes et non les textes..

Cela dit, le sujet est clos, MERCI.........
Messages postés
47
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
19 juin 2004

Pour les fautes, il faut pas exagérer, moi je croi qu'on parle ici des fautes du genre "fote d'ortografe".. j'ai pas besoin de correcteur car si il le faut, jsuis assez bon en francais. Mais je me casserai pas trop la tête avec ca, dsl. En passant arrêtez ca on s'en tape.. sur plein de sources j'ai vu ce genre de commentaire inutile. C pas moi et ma facon d'écrire la source, C le zip. Et comme je dit je perderai pas mon temps avec ca, merci :)

Alex860 > T'as raison, mais je ne compte pas l'améliorer.. je l'ai posté comme aide

Sirocoo > T'as pas vu les app qu'il nous demande de faire ?! pour un truc comme ca c 40/10. enfin...

deliriumtribu > Trouve en qq part ou achète le: Visual Studio 6.0
ou .Net
t'as des outils et aussi t'as Visual C++ compris (en plus de Visual Basic bien sur).
Afficher les 10 commentaires