PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2024 → Barre de titre
Barre de titre
Iniciado por alain.thiemard, 15,mar. 2006 14:50 - 3 respuestas
Publicado el 15,marzo 2006 - 14:50
Bonjour à tous
J'aurais besoin de pouvoir activer ou non le bouton maximise ou alors au pire faire apparaitre ou non la barre de tire par programmation
est ce possibe?
Si oui, pourrait-on m'expliquer comment faire ou au moins ou trouver l'information, car sur l'aide, il n'y pas grand chose

merci d'avance
Alain
Publicado el 15,marzo 2006 - 16:44
Bonjour

Voila une procédure qui te permet de faire ce type de modification :

PROCEDURE ModifAttFen(iSupAtt=0,iAddAtt=0)
// Gestions des attributs de la fenetres
// iSupAtt [in]: Attributs à supprimer
// 0x0001 Grise/Enlève le bouton maximise (grisé sous Win95)
// 0x0002 Grise/Enlève le bouton iconise (grisé sous Win95)
// 0x0004 Enlève les bords de modification de taille
// 0x0008 Grise/Enlève le menu système (les trois icones sous NT) (grisé sous Win95)
// 0x0040 Enlève la barre de titre
// iAddAtt [in]: Attributs à restaurer
//
LOCAL
GWL_STYLE est un entier =-16
lInt est un entier
i2 est une entier

// Retourne les information de style de la fenêtre courante
// LONG GetWindowLong(
// HWND hWnd, // handle to window
// int nIndex // offset of value to retrieve
// );
lInt=AppelDLL32("User32", "GetWindowLongA", Handle(""), GWL_STYLE)

i2=HiWord(lInt)
i2=i2-ETBinaire(i2,iSupAtt)
i2=OUBinaire(i2,iAddAtt)

lInt=i2*65536+LoWord(lInt)

// Change les attributs de style de la fenêtre
// LONG SetWindowLong(
// HWND hWnd, // handle to window
// int nIndex, // offset of value to set
// LONG dwNewLong // new value
// );

AppelDLL32("User32","SetWindowLongA",Handle(""),GWL_STYLE,lInt)
AppelDLL32("User32","SetWindowPos",Handle(""),0,0,0,0,0,0x27)


A+

--
Francis MOREL
Publicado el 15,marzo 2006 - 16:44
voila un code pour griser le bouton maximise de la fenetre:

bAgrandissement est un booléen

HdlFen est un entier long= Handle(NomDeLaFenetre)
GWL_STYLE est un entier = -16

WS_MAXIMIZEBOX est un entier long = 65536

RDW_FRAME est un entier long = 1024
RDW_INVALIDATE est un entier long = 1
RDW_UPDATENOW est un entier long = 256

infoFen est un entier long =AppelDLL32("user32","GetWindowLongA",HdlFen,GWL_STYLE)

SI bAgrandissement = 1 ALORS //--- affiche icone agrandissement
infoFen = OUBinaire(infoFen,WS_MAXIMIZEBOX)
SINON //--- efface icone agrandissement
infoFen = ETBinaire(infoFen,NONBinaire(WS_MAXIMIZEBOX))
FIN

AppelDLL32("user32","SetWindowLongA",HdlFen,GWL_STYLE,infoFen)

AppelDLL32("user32","RedrawWindow",HdlFen,Null,Null,RDW_FRAME+RDW_INVALIDATE+RDW_UPDATENOW)
Publicado el 15,marzo 2006 - 17:19
mon code est a mettre dans une procédure avec comme paramètre :bAgrandissement et NomDeLaFenetre