Deplacer une fenetre sur l'axe des abscisses sans modifier les autres parametres
proximad
Messages postés14Date d'inscriptionmercredi 11 août 2004StatutMembreDernière intervention29 octobre 2008
-
29 oct. 2008 à 19:35
proximad
Messages postés14Date d'inscriptionmercredi 11 août 2004StatutMembreDernière intervention29 octobre 2008
-
29 oct. 2008 à 23:34
Bonjour,
je suis entrain de developper une application sous VB.NET, l'application doit faire deplacer les fenetres qui ne sont pas agrandits en modifiant uniquement l'abscisse (x) sans modifier l'ordonnée (y) (translation horizontale).
j'ai tout d'abord utilisé l'API GetWindowPlacement, qui detecte si les fenetres ouvertes sont agrandits, normales ou reduites, voici le code que j'ai utilisé :
Public
DeclareFunction GetWindowPlacement Lib"user32" (ByVal hWnd As IntPtr, ByRef windowPlacement As WindowPlacement) AsLong
Public
Structure WindowPlacement
Public Length AsUInteger
Public Flags AsUInteger
Public ShowCmd As ShowState
Public MinPosition As Point
Public MaxPosition As Point
Public NormalPosition As Rectangle
EndStructure
Public
W As WindowPlacement
GetWindowPlacement(hWnd, W)
If W.ShowCmd = 1 Then
le probleme c'est que apres je ne sais pas quelle API utiliser, si j'opte pour SetWindowPos, celle ci prend comme parametres : x et y qui sont les coordonnées de la fenetres, cx et cy qui sont les dimensions de la fenetres ainsi que d'autres parametres, or je ne veux modifier que x, et je ne peux pas donner aux autres parametres des valeurs afin de ne pas toucher aux dimensions des fenetres ouvertes, j'ai essayé d'utiliser GetWindowPlacement, mais là aussi je seche, je ne trouve pas comment modifier le x.
merci pour votre aide.<!-- / message -->
A voir également:
Deplacer une fenetre sur l'axe des abscisses sans modifier les autres parametres
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 29 oct. 2008 à 21:05
Ah !...
Tu sais quoi ? Moi, je n'ai jamais développé en VB.Net ... mais je sais quand même que ta fonction ne saurait y être typée en Long ... !!!!
bonne chance...
proximad
Messages postés14Date d'inscriptionmercredi 11 août 2004StatutMembreDernière intervention29 octobre 2008 29 oct. 2008 à 21:16
je ne vois pas pourquoi, mais supposont meme que ce soit le cas, là n'est pas la question, mon probleme n'est pas dans GetWindowPlacement, mon probleme est quelle API devrais je utiliser pour realiser la translation.
merci pour ta remarque
Vous n’avez pas trouvé la réponse que vous recherchez ?
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 29 oct. 2008 à 22:10
Je serais fort étonné de ce que VB.Net ne t'offre pas la possibilité (au demeurant élémentaire) de (à ta guise) :
- soit modifier la seule propriété Left
- soit utiliser la méthode Move (ou l'équivalent VB.Net)
et je maintiens que ta fonction ne saurait, sous VB.Net, être typée en Long
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 29 oct. 2008 à 22:20
Quand à l'utilisation (évidemment également possible), de la fonction SetWindowPos :
1) elle doit également être typée en Integer (et pas en long) sous VB.Net
2) elle doit être associée à GetWindowPlacement (pour extraire les autres éléments de positions et dimensions actuels).
Il te suffit ensuite de garder tout, sauf l'abscisse, que tu fais varier à ta guise.
proximad
Messages postés14Date d'inscriptionmercredi 11 août 2004StatutMembreDernière intervention29 octobre 2008 29 oct. 2008 à 23:34
ok merci pour ta reponse, je vais modifier long en interger
pour ce qui est de GetWindowPlacement, elle obtient la position et les dimensions de la fenetre dans la structure WindowPlacement mais je ne sais pas comment les recuperer à partir de cette structure