Problème de maximisation d'un form none, help please
yassirguitare
Messages postés29Date d'inscriptionmardi 20 décembre 2005StatutMembreDernière intervention 3 juin 2009
-
29 mars 2007 à 23:34
yassirguitare
Messages postés29Date d'inscriptionmardi 20 décembre 2005StatutMembreDernière intervention 3 juin 2009
-
31 mars 2007 à 14:57
bonjour
je developpe une application en vb 2005 avec une interface entiérement "skinable"
- j'ai utilsé une forme "none" pour la fenetre
- une image comme barre de titre
- des boutons pour : Fermer, Agrandire, Reduir
Mais j'ai un petit souci lors de la maximisation de la forme :
le code suivant est sur le Bouton Agrandire:
Private
Sub Agrandire_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles
Agrandire.Click
Me.WindowState = FormWindowState.Maximized
End
Sub
la barre des tâches de windows se masque et la forme remplie entièrement l'ecran ?
Est ce que qqn peut m'aider et me montrer comment faire pour maximisé une forme "none"
sans que la barre des tâches de windows soit masquer
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 30 mars 2007 à 08:58
a toi alors de la déplacer convenablement, en tnant compte de la position de la barre des taches, en tenant compte des AppBarres qui pourraient etre présentes, et surtout du fait que tout est susceptible de bouger, et que ta form devra donc être déplacée en conséquence...
une autre solution, est de ne pas mettre en None, et de redessiner (subclassing) ta barre de titre toi même....
yassirguitare
Messages postés29Date d'inscriptionmardi 20 décembre 2005StatutMembreDernière intervention 3 juin 2009 31 mars 2007 à 02:51
ou il y en a dans la liste déroulante des événements des procédures
Private Sub Form1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
'ta procedure qui se déclanche lorsque tu redimentionne le formulaire
'qui est trés utile par exemple pour l'agencement des contrôles au sein d'un formulaire
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 31 mars 2007 à 04:03
tu peux alors mettre ton code dans cette sub,
pour que ta fenêtre garde toujour les mêmes dimentions
quoiqu' il arrive qui puisse les modifier autrement que par
Agrandire.Click
Private Sub Form1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
If (Me.Width = Windows.Forms.Screen.PrimaryScreen.WorkingArea.Width) And _
(Me.Height = Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height) Then Exit sub
'ce test est pour éviter que ton événement ne se déclenche une seconde fois
'ensuite tu peux la redimensionner
Me.Width = Windows.Forms.Screen.PrimaryScreen.WorkingArea.Width
Me.Height = Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height
Me.Location = New Point(0, 0)
EndSub
Je ne connais pas trop Vb2005, mais c' est ce que je fais avec VB
J' ai peut être écrit des conneries, à toi de voir si ça correspond
yassirguitare
Messages postés29Date d'inscriptionmardi 20 décembre 2005StatutMembreDernière intervention 3 juin 2009 31 mars 2007 à 14:57
Pardon j'ai pas VB6 et j'ai trés trés peu travailler Avec, et j'ai tester ton code Chaibat05 ca ne change rien chez moi
en faite tant qu'on y est j'envoie mon bout de code qui me permet de gerer ma forme NONE a peut prés comme une sizable
__Ecriture des Procedures__________________________________
' la procedure Agrandir_WinMain() permet de mettre la fenetre fullScreen
Private Sub Agrandir_WinMain()
Me.Width = Windows.Forms.Screen.PrimaryScreen.WorkingArea.Width
'meWidth renvoie 1024 si tu as par exemple un ecran 17'
Me.Height = Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height
'meWidth renvoie 765 - (hauteur de la barre des tâche de windows) si tu as par exemple un ecran 17'
Me.Location = New Point(0, 0)
'location permet de placer le coin superieur gauche de la fenetre au coin superieur gauche de l'ecran
End Sub _________________________________________________________________
'cette procedure permet de revenire a l'etat Inferieur
Private Sub EtatInferieur()
Me.Width = 800
' largeur de la forme 800 px
Me.Height = 600
' hauteur de la forme 600 px
Dim positionLargeur As Integer
Dim positionHauteur As Integer
positionLargeur = (Windows.Forms.Screen.PrimaryScreen.WorkingArea.Width /2) - (Me.Width / 2)
' la position de la forme en Axe des abscisses est au centre
positionHauteur -= -50
' position de la hauteur et 50 px plus bas du haut del'ecran
Me.Location = New Point(positionLargeur, positionHauteur)
End Sub
__Appel des pocedures par le click sur les boutons appropriés_____________
Private Sub BoutonAgrandire _Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Agrandir_WinMain()
End Sub
Private Sub BoutonEtatInferieur_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Agrandir_WinMain()
End Sub
Private Sub BoutonReduire_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
me.WindowState =FormWindowState.Minimized
End Sub
Private Sub BoutonFermer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Me.Close() End Sub
______Déplacement de la form None en cliquant sur un image Picturebox qui remplace la barre de titre
'deplacement de la WinMain "" NB : ce code je l'ai trouver sur CodeSources Private Declare Function ReleaseCapture Lib "user32" () As Integer
Private Const HTCAPTION As Integer = 2
Private Const WM_NCLBUTTONDOWN As Integer = &HA1S
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByRef lParam As Integer) As Integer
'le lier a un evenemt MouseDown sur une pictureBox par exemple
Private Sub TitleBarPictureBox_MainWin_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TitleBar_MainWin.MouseDown
If e.Button = Windows.Forms.MouseButtons.Left Then
ReleaseCapture()
SendMessage(Me.Handle.ToInt32, WM_NCLBUTTONDOWN, HTCAPTION, 0)
End If
End Sub
Redimentionement de la form None NB : ce code je l'ai trouver sur CodeSources
Private Const WS_EX_STATICEDGE As Integer = &H20000
Private Const WS_SIZEBOX As Integer = &H40000
Protected Overrides ReadOnly Property CreateParams() As System.Windows.Forms.CreateParams
Get
Dim CP As CreateParams = MyBase.CreateParams
CP.ExStyle = WS_EX_STATICEDGE
CP.Style = WS_SIZEBOX
Return CP
End Get
End Property
voilà c'est comme ça que ma form "none" et gérer
j'espére que ça va aider qqn ou lui montrer une voie pour une meilleur source que celle-ci