Soyez le premier à donner votre avis sur cette source.
Vue 11 536 fois - Téléchargée 766 fois
Dans une form avec un bouton Command1 : Public BLeft As Long Public BRight As Long Public BTop As Long Public BBottom As Long ' Met les nouveaux paramêtres Private Sub Form_Load() ' Toujours au premier plan SetWindowPos Me.hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE ' Sauvegarde les dimensions actuelles pour les rétablir après BLeft = Get_DimBureau(GDB_Left) BRight = Get_DimBureau(GDB_Right) BTop = Get_DimBureau(GDB_Top) BBottom = Get_DimBureau(GDB_Bottom) ' Positionne la fenêtre à droite Me.Top = BTop Me.Height = BBottom - BTop Me.Left = BRight - Me.Width ' Change les dimensions du bureau Set_DimBureau BLeft, BTop, Me.Left, BBottom End Sub ' Remet les anciens paramêtres Private Sub Command1_Click() Set_DimBureau BLeft, BTop, Screen.Width, BBottom End End Sub ' Dans un module : ' Pour récupérer les dimensions utilisables du bureau Public Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByRef lpvParam As RECT, ByVal fuWinIni As Long) As Long Public Const SPI_GETWORKAREA = 48 Private Const SPI_SETWORKAREA = 47 Private Const SPI_SENDCHANGE = 2 ' Pour définir quelle dimension on veut récupérer Public Const GDB_Left = 0 Public Const GDB_Top = 1 Public Const GDB_Right = 2 Public Const GDB_Bottom = 3 Private Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type ' Activer toujours la fenêtre 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 ' Le rafraichissement Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Public Const HWND_BROADCAST = 65535 Public Const WM_WININICHANGE = 26 Public Const WM_SETTINGCHANGE = 26 ' Récupère les dimensions utilisables du bureau Public Function Get_DimBureau(ByVal Cote As Long) As Long Dim TRect As RECT If SystemParametersInfo(SPI_GETWORKAREA, 0, TRect, 0) Then Select Case Cote Case GDB_Left Get_DimBureau = TRect.Left * Screen.TwipsPerPixelX Case GDB_Top Get_DimBureau = TRect.Top * Screen.TwipsPerPixelY Case GDB_Right Get_DimBureau = TRect.Right * Screen.TwipsPerPixelX Case GDB_Bottom Get_DimBureau = TRect.Bottom * Screen.TwipsPerPixelY End Select End If End Function ' Change les dimensions de la zone utilisable du bureau Public Function Set_DimBureau(Left As Long, Top As Long, Right As Long, Bottom As Long) On Error Resume Next Dim TRect As RECT TRect.Left = Left / Screen.TwipsPerPixelX TRect.Top = Top / Screen.TwipsPerPixelY TRect.Right = Right / Screen.TwipsPerPixelX TRect.Bottom = Bottom / Screen.TwipsPerPixelY Set_DimBureau = SystemParametersInfo(SPI_SETWORKAREA, 0, TRect, SPI_SENDCHANGE) ' Rafraichit le bureau SendMessage HWND_BROADCAST, WM_WININICHANGE, 0, 0 SendMessage HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0 End Function
9 avril 2008 à 19:21
j'aimerais bien pouvoir mettre cette barre en bas et pas à droite, qu'il n'y est pas le bouton quitter, qu'elle soit transparente, et qu'elle fasse 90 pixels de hauteur sur 1400 de large
Je vous solicite pour cela car je n'arrive pas à le faire moi même.
Si vous pouviez m'envoyer le fichier modifier à: thebossrf@hotmail.fr
merci beaucoup
3 août 2005 à 22:59
c'est comment faire pour mette ce barre en haut de l'écran, et pas a droite ?
et merci d'avance
29 avril 2005 à 13:43
Sans les sendmessages les nouvelles dimensions ne sont pas prises en compte...
Et puis je crois que ça ne vient pas du code car avec Winamp par exemple j'avais le meme problème... Donc la faute à Windows !!! lol
28 avril 2005 à 23:18
24 nov. 2004 à 22:05
Merci à BruNews pour la technique, il suffit d'un sendmessage pour rafraichir la taille de toutes les fenetres maximisées.
J'ai ajouté en + la position de la fenetre toujours au premier plan.
Profitez bien il n'y a plus de bugs, trop de bonheur!!
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.