cs_badrbadr
Messages postés475Date d'inscriptionjeudi 19 juin 2003StatutMembreDernière intervention 3 novembre 2008
-
17 déc. 2006 à 18:55
eric7950
Messages postés4Date d'inscriptionlundi 14 août 2006StatutMembreDernière intervention 4 août 2012
-
4 août 2012 à 18:08
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
eric7950
Messages postés4Date d'inscriptionlundi 14 août 2006StatutMembreDernière intervention 4 août 2012 4 août 2012 à 18:08
bien sûr, j'ai changé
If iNewWA = 1 Then
Label1.Text = String.Format("Espace de travail d'origine: {0} {1} Espace de travail actuel (redimensionné): {2}", _
rectWA.ToString, vbCrLf, SelectScreen.WorkingArea.ToString)
End If
mais il écrit "Ma barre perso"
eric7950
Messages postés4Date d'inscriptionlundi 14 août 2006StatutMembreDernière intervention 4 août 2012 4 août 2012 à 17:55
Bonjour,
très pratique pour se créer un formulaire type sidebar, mais comment le faire pour le second écran ?
avec les quelques modifications suivantes, j'arrive bien à l'afficher sur le 2ème écran, mais il ne réduit pas la surface, ni affiche les dimensions, alors que si c'est l'écran principal, tout marche
qu'est-ce que j'ai pû rater ?
Merci
Dim r As RECT = New RECT(rectWA.Left, rectWA.Top, rectWA.Width, rectWA.Height - Me.Height) 'rectWA.width au lieu de rectWA.Right
MadM@tt
Messages postés2167Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention16 juillet 20091 27 déc. 2006 à 17:21
FremyCompany > effectivement ça marche chez moi, bonne idée c'est sur.
En y reflechissant bien, ça devait etre sous win 98 que ça posait problème surement...
FREMYCOMPANY
Messages postés276Date d'inscriptionjeudi 12 janvier 2006StatutMembreDernière intervention22 décembre 2008 27 déc. 2006 à 13:09
Il y a un moyen simple de tester si mon truc marche...
Dans la barre de lancement rapide, tu as l'icone "bureau", qui renvoie toutes les fenêtres dans la barre de taches et qui exploite la même fonction du shell que moi... Moi il me semblait que ca devait marcher, mais j'ai jamais vraiment testé...
cs_eldim
Messages postés956Date d'inscriptionlundi 30 mai 2005StatutMembreDernière intervention21 août 20141 22 déc. 2006 à 15:03
petite question : un programme comme ça faut pas qu'il se fasse tué violemment sinon ça fou la merde, comment on peut faire pour embêcher le kill ?
cs_eldim
Messages postés956Date d'inscriptionlundi 30 mai 2005StatutMembreDernière intervention21 août 20141 22 déc. 2006 à 14:55
finalement y a un mini truc a redire...
il manque la prise en compte de l'épaisseur des formulaire windows dans le dimensionnement de l'area...
cs_eldim
Messages postés956Date d'inscriptionlundi 30 mai 2005StatutMembreDernière intervention21 août 20141 21 déc. 2006 à 15:30
Salut tout le monde !
trop bon ! ça marche très bien ! et c'est très pratique !
bravo
ps : à force on va finir par enregistrer des commentaires personnalisés par pseudo qu'on ressortira à chaque nouveau code du même auteur (car en ce qui concerne Willi on peut pratiquement toujours dire la même chose...)
MadM@tt
Messages postés2167Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention16 juillet 20091 18 déc. 2006 à 12:58
Ah quelque part ça me rassure lol...
Pour regler ce problème j'avais essayé des milliards de trucs, en essayant plein de combines, minimiser, remaximiser, rafraichir etc...
Mais aucune ne s'était avérée efficace à 100%. J'essayerai bien le true de FremyCompany voir si ça marche, en tout cas je sais que quand j'avais fait mes tests, meme en minimisant à la main les fenetres, puis en les remaximisant à la main, ça ne résolvait meme pas le problème.
J'avais alors utilisé une autre façon avec Shappbar (un nom comme ça je crois), mais c'est spécifiquement orienté "barre d'outil", c'est à dire que ça colle notre fenetre sur un bord de l'écran. En tout cas cette méthode rafraichissait bien les fenetres.
econs
Messages postés4030Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention23 décembre 200824 18 déc. 2006 à 09:59
Cette problématique était à la mode ces derniers temps sur le forum. Ca va faire des heureux ...
FREMYCOMPANY
Messages postés276Date d'inscriptionjeudi 12 janvier 2006StatutMembreDernière intervention22 décembre 2008 18 déc. 2006 à 09:26
Avec les API, y a un moyen (détourné) !
Vous ajoutez dans le projet la bibliothèque window Shell.dll (x:/Windows/System32)
Ensuite, vous lancer la fonction suivante :
<<
Dim Shell As New Shell32.ShellClass()
Shell.MinimizeAll()
>>
Cette fonction renvoie toutes les fenêtres dans la barre des taches.
Une fois cela fait, l'utilsateur va "réouvrir" les fenêtres, qui prendront la bonne taille !
cs_Willi
Messages postés2375Date d'inscriptionjeudi 12 juillet 2001StatutModérateurDernière intervention15 décembre 201822 18 déc. 2006 à 00:23
Salut Mad, le fait d'être en .net ne change rien, les fenetres ouvertes est le mêmes qu'en vb6.
Peut-être qu'un simple UpdateWindow ou encore un AdjustWindowRect sur l'ensemble des fenetres corrigera le tir, je n'ai pas essayé.
MadM@tt
Messages postés2167Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention16 juillet 20091 17 déc. 2006 à 23:59
Salut Willi, j'ai pas .net alors je peux pas tester, mais je sais qu'en utilisant ces api sous VB6, le résultat est assez chaotique : quand on redéfini l'espace de travail, les fenetres ouvertes ne prennent pas en compte le changement et reste maximisées sans changer.
Je voulais savoir si en .net ça rendais la meme chose, ou si les fenetres s'ajustent automatiquement ?
cs_badrbadr
Messages postés475Date d'inscriptionjeudi 19 juin 2003StatutMembreDernière intervention 3 novembre 20081 17 déc. 2006 à 18:55
4 août 2012 à 18:08
If iNewWA = 1 Then
Label1.Text = String.Format("Espace de travail d'origine: {0} {1} Espace de travail actuel (redimensionné): {2}", _
rectWA.ToString, vbCrLf, SelectScreen.WorkingArea.ToString)
End If
mais il écrit "Ma barre perso"
4 août 2012 à 17:55
très pratique pour se créer un formulaire type sidebar, mais comment le faire pour le second écran ?
avec les quelques modifications suivantes, j'arrive bien à l'afficher sur le 2ème écran, mais il ne réduit pas la surface, ni affiche les dimensions, alors que si c'est l'écran principal, tout marche
qu'est-ce que j'ai pû rater ?
Merci
Dim SelectScreen As ScreenSelectScreen Screen.AllScreens(1) '0 1er écran, 1 = 2ème écran
Me.Width = SelectScreen.WorkingArea.Width
Me.Left = SelectScreen.WorkingArea.Left
Me.Top = SelectScreen.WorkingArea.Height - Me.Height
rectWA = SelectScreen.WorkingArea
Dim r As RECT = New RECT(rectWA.Left, rectWA.Top, rectWA.Width, rectWA.Height - Me.Height) 'rectWA.width au lieu de rectWA.Right
27 déc. 2006 à 17:21
En y reflechissant bien, ça devait etre sous win 98 que ça posait problème surement...
27 déc. 2006 à 13:09
Dans la barre de lancement rapide, tu as l'icone "bureau", qui renvoie toutes les fenêtres dans la barre de taches et qui exploite la même fonction du shell que moi... Moi il me semblait que ca devait marcher, mais j'ai jamais vraiment testé...
22 déc. 2006 à 15:03
22 déc. 2006 à 14:55
il manque la prise en compte de l'épaisseur des formulaire windows dans le dimensionnement de l'area...
21 déc. 2006 à 15:30
trop bon ! ça marche très bien ! et c'est très pratique !
bravo
ps : à force on va finir par enregistrer des commentaires personnalisés par pseudo qu'on ressortira à chaque nouveau code du même auteur (car en ce qui concerne Willi on peut pratiquement toujours dire la même chose...)
18 déc. 2006 à 12:58
Pour regler ce problème j'avais essayé des milliards de trucs, en essayant plein de combines, minimiser, remaximiser, rafraichir etc...
Mais aucune ne s'était avérée efficace à 100%. J'essayerai bien le true de FremyCompany voir si ça marche, en tout cas je sais que quand j'avais fait mes tests, meme en minimisant à la main les fenetres, puis en les remaximisant à la main, ça ne résolvait meme pas le problème.
J'avais alors utilisé une autre façon avec Shappbar (un nom comme ça je crois), mais c'est spécifiquement orienté "barre d'outil", c'est à dire que ça colle notre fenetre sur un bord de l'écran. En tout cas cette méthode rafraichissait bien les fenetres.
18 déc. 2006 à 09:59
18 déc. 2006 à 09:26
Vous ajoutez dans le projet la bibliothèque window Shell.dll (x:/Windows/System32)
Ensuite, vous lancer la fonction suivante :
<<
Dim Shell As New Shell32.ShellClass()
Shell.MinimizeAll()
>>
Cette fonction renvoie toutes les fenêtres dans la barre des taches.
Une fois cela fait, l'utilsateur va "réouvrir" les fenêtres, qui prendront la bonne taille !
18 déc. 2006 à 00:23
Peut-être qu'un simple UpdateWindow ou encore un AdjustWindowRect sur l'ensemble des fenetres corrigera le tir, je n'ai pas essayé.
17 déc. 2006 à 23:59
Je voulais savoir si en .net ça rendais la meme chose, ou si les fenetres s'ajustent automatiquement ?
17 déc. 2006 à 18:55