24/04/2024
Windev et les Api Windows
Nb de visiteurs en ligne : 2
>> Introduction <<
>> Codes et Forum <<
>> Download <<
Rubrique
: 5 - Trucs et astuces
Sujet
: Supprimer l'ascenseur horizontal d'une table
Auteur
Message
°¨¨ JL ¨¨°
Posté le : 23/06/2000 12:00:00
//Pour supprimer l'ascenseur horizontal d'une table.
// Appel de la procédure :
supascenseurh("nom de la table","nom de la fenêtre")
// La procédure :
Procédure supascenseurh(tb,fen)
rect est compose de
l est un entier long // left
t est un entier long // top
r est un entier long // right
b est un entier long // bottom
fin
classname est une chaine asciiz de 128
pos est un entier
indice est un entier
hwnd est un entier long=AppelDll32("User32", "GetWindow", handle(fen), 5)
tantque hwnd <> 0
appeldll32("user32","GetClassNameA",hWnd,&classname,128)
si sansespace(classname)="ScrollBar" alors
appeldll32("user32","GetWindowRect",hwnd,&rect)
pos={tb}..ligne+{tb}..hauteur+{fen}..ligne
// test si position y correspond au bas de la table
// le - varie en fonction du style de la table
si (rect.b-23=pos) ou (rect.b-19=pos) alors
appeldll32("user32","ShowWindow",hwnd,0)
indice++
fin
fin
// le champ static correspond au champ d'affichage de la table
si sansespace(classname)="Static" alors
appeldll32("user32","GetWindowRect",hwnd,&rect)
pos={tb}..colonne+{fen}..colonne
// si le champ static correspond à celui de la table
// on le redimensionne pour occupé la place de l'ascenseur supprimé
// ce qui réduit les problèmes d'affichage
si rect.l-4=pos alors
appeldll32("user32","ShowWindow",hwnd,0)
appeldll32("user32","SetWindowPos",hwnd,0,{tb}..colonne,{tb}..ligne,{tb}..largeur,{tb}..hauteur+23,0)
appeldll32("user32","ShowWindow",hwnd,1)
indice++
fin
fin
// modif effectuées, on peut sortir
si indice=2 alors sortir
hwnd=AppelDll32("User32", "GetWindow", hwnd , 2)
fin