Icône de la ressource

démonstration de l'utilisation des api en Excelmacro4 épisode 1 la barre de titre des userforms 2.0

patricktoulon

XLDnaute Barbatruc
patricktoulon a soumis une nouvelle ressource:

démonstration de l'utilisation des api en Excelmacro4 épisode 1 - manipulation de la barre de titre et les boutons de la barre de titre des userforms

très souvent on peine a déclarer nos api en fonction de la version d'excel 32/64 bits
ce fichier vous montre un certain nombre de possibilités
quand à l'utilisation des api avec excelmacro4
ce qui nous dispense de devoir faire des déclarations d'api 32/64
enjoy! ;)

En savoir plus sur cette ressource...
 

Toubabou

XLDnaute Impliqué
Bonjour,
Super travail.
Pourriez-vous m'expliquer comment rentrer votre code pour supprimer la barre des titres dans un de mes fichier?
Merci beaucoup
 

patricktoulon

XLDnaute Barbatruc
re
et oui le problème avec les version sup à 2007 et les version W10 et 11
c'est que le redraw est automatiquement forcé
même en découpant CARREMENT!!! la fenêtre de sa barre de titre avec une api region
il suffit de la tenir avec la souris et de déplacer la fenêtre pour redessiner à l’écran la barre de titre
il faudra que je m'y intéresse

inutile de dire que setwindowlong ne fonctionne plus non plus

démonstration du redraw au déplacement de la fenêtre
demo.gif


code utilisé
VB:
Dim hwnd&
Sub Nocaption()
    Dim insideRect As Long, ptopx#, InsideTop#, InsideLeft#, InsidWidth#, InsidHeight#, insideMarge#

    With ActiveWindow.ActivePane: ptopx = (.PointsToScreenPixelsX(72 / (.Parent.Zoom / 100)) - .PointsToScreenPixelsX(0)) / 72: End With

    hwnd = Application.hwnd
    ExecuteExcel4Macro ("CALL(""user32"",""SetWindowLongA"",""JJJJJ""," & hwnd & ", " & -16 & ", " & &H94080080 & ")")      'api SetWindowLongA

    insideRect = ExecuteExcel4Macro("CALL(""gdi32"",""CreateRoundRectRgn"",""JJJJJJJ""," & 0 & ", " & 20 & ", " & Round(Application.Width * 1.33333) & ", " & Round(Application.Height * 1.333333) & ", " & 0 & ", " & 0 & ")")

    ExecuteExcel4Macro ("CALL(""user32"",""SetWindowRgn"",""JJJJ""," & hwnd & ", " & insideRect & ", " & 1 & ")")

    ExecuteExcel4Macro ("CALL(""gdi32"",""DeleteObject"",""JJ""," & insideRect & ")")

    ExecuteExcel4Macro ("CALL(""user32"",""DrawMenuBar"",""JJJJJJ"", " & hwnd & ")")

End Sub
maintenant si il s'agit de tout enlever alors il n'y a pas de soucis mais si tu veux garder le rubant avec les onglets c'est morts(POUR LE MOMENT)
 

Statistiques des forums

Discussions
311 711
Messages
2 081 782
Membres
101 817
dernier inscrit
carvajal