OVH Cloud OVH Cloud

Afficher/masquer la barre des taches + agrandissement

8 réponses
Avatar
TouTi
Bonjour

Vous connaissais surement ce code qui permet d'Afficher/masquer la barre des
taches

http://faq.vb.free.fr/index.php?question=9

mais il ne m'agrandit pas les fenêtres actives... Que puis-je faire???

TouTi

--

8 réponses

Avatar
LE TROLL
Salut,

En faisant ce que tu dis :

Private Declare Function FindWindow Lib "user32" Alias
"FindWindowA" (ByVal lpClassName As String, ByVal
lpWindowName As String) As Long
Private Declare Function SetWindowPos Lib "user32" (ByVal
hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As
Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long,
ByVal wFlags As Long) As Long
Const TOGGLE_HIDEWINDOW = &H80
Const TOGGLE_UNHIDEWINDOW = &H40
Dim etat As Boolean

Sub Command1_Click() ' mettre -> Command1
etat = Not etat
If etat = True Then Call SetWindowPos(TaskbarHandle(), 0,
0, 0, 0, 0, TOGGLE_HIDEWINDOW) 'Masque
If etat = False Then Call SetWindowPos(TaskbarHandle(), 0,
0, 0, 0, 0, TOGGLE_UNHIDEWINDOW) 'affiche
End Sub

Function TaskbarHandle() As Long
TaskbarHandle = FindWindow("Shell_traywnd", "")
End Function

Je ne vois pas le rapport avec la taille de la fenêtre
active, dans la mesure ou tu masques ta barre depuis ton
applie, l'applie n'est pas concernée, c'est la barre qui est
concernée ???
---------------------




"TouTi" <gelapplication[Nospam]@tiscali.fr> a écrit dans le
message de news: 42a57898$0$921$
Bonjour

Vous connaissais surement ce code qui permet
d'Afficher/masquer la barre des
taches

http://faq.vb.free.fr/index.php?question=9

mais il ne m'agrandit pas les fenêtres actives... Que
puis-je faire???

TouTi

--





Avatar
TouTi
> Je ne vois pas le rapport avec la taille de la fenêtre
active, dans la mesure ou tu masques ta barre depuis ton
applie, l'applie n'est pas concernée, c'est la barre qui est
concernée ???



En fait ce que je voudrais faire, c'est d'utiliser la surface total de
l'écran (faire une sorte de plein écran à mon appli).
Donc réduire la hauteur de la barre des tâches et redimensionner la form de
mon appli à l'espace libéré.

Avec le code cité, cela cache la barre des tâches. Apparrement elle doit
être encore là et donc impossible a agrandir la form...

TouTi
--
Avatar
Jacques93
Bonjour Touti,
TouTi a écrit :
Bonjour

Vous connaissais surement ce code qui permet d'Afficher/masquer la barre des
taches

http://faq.vb.free.fr/index.php?question=9

mais il ne m'agrandit pas les fenêtres actives... Que puis-je faire???

TouTi

--



Tu peux peut être t'inspirer de ceci :


Option Explicit

Private Const HWND_TOP = 0
Private Const SWP_SHOWWINDOW = &H40
Private Const SWP_HIDEWINDOW = &H80
Private Declare Function SetWindowPos Lib "user32" _
(ByVal Hwnd As Long, ByVal hWndInsertAfter As Long, _
ByVal x As Long, ByVal Y As Long, ByVal Cx As Long, _
ByVal Cy As Long, ByVal wFlags As Long) As Long

' API GetSystemMetrics
' =================== Private Declare Function GetSystemMetrics Lib "user32" _
(ByVal nIndex As Long) As Long
Private Const SM_CXSCREEN = 0
Private Const SM_CYSCREEN = 1

Private Declare Function FindWindow Lib "user32" _
Alias "FindWindowA" (ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long

Private bfullscreen As Boolean

Public Sub FullScreen(Optional bForce As Boolean)
Static Top As Long, Left As Long
Static Width As Long, Height As Long
Dim Cx As Long, Cy As Long
Dim lResult As Long

If bfullscreen Then
SetWindowPos Me.Hwnd, HWND_TOP, Left, Top, Width, Height,
SWP_SHOWWINDOW
bfullscreen = False
ViewTaskBar True
Else
' Sauvegarde la taille et la position de la fenetre
Left = Me.Left / Screen.TwipsPerPixelX
Top = Me.Top / Screen.TwipsPerPixelY
Width = Me.Width / Screen.TwipsPerPixelX
Height = Me.Width / Screen.TwipsPerPixelY

' Cache la barre de tache
ViewTaskBar False
' Occupe la taille physique de l'ecran
Cx = GetSystemMetrics(SM_CXSCREEN)
Cy = GetSystemMetrics(SM_CYSCREEN)
SetWindowPos Me.Hwnd, HWND_TOP, 0, 0, Cx, Cy, SWP_SHOWWINDOW
bfullscreen = True
End If
End Sub

' Affiche / Eface la barre de taches Windows
' ========================================= Private Sub ViewTaskBar(bShow As Boolean)
Dim lResult As Long

lResult = FindWindow("Shell_traywnd", "")
If lResult Then
If bShow Then
lResult = SetWindowPos(lResult, 0, 0, 0, 0, 0, SWP_SHOWWINDOW)
Else
lResult = SetWindowPos(lResult, 0, 0, 0, 0, 0, SWP_HIDEWINDOW)
End If
End If
End Sub


Private Sub Command1_Click()
FullScreen
End Sub



--
Cordialement,

Jacques.
Avatar
TouTi
Jacques


Tu peux peut être t'inspirer de ceci :


Option Explicit

Private Const HWND_TOP = 0
Private Const SWP_SHOWWINDOW = &H40
Private Const SWP_HIDEWINDOW = &H80
Private Declare Function SetWindowPos Lib "user32" _
(ByVal Hwnd As Long, ByVal hWndInsertAfter As Long, _
ByVal x As Long, ByVal Y As Long, ByVal Cx As Long, _
.....



Private Sub Command1_Click()
FullScreen
End Sub



Merci pour tes recherches mais malheureusement cela ne fonctionne pas, du
moins la barre est cachée mais la form ne se redimensionne pas avec :
Cx = GetSystemMetrics(SM_CXSCREEN)
Cy = GetSystemMetrics(SM_CYSCREEN)
SetWindowPos frmMain.Hwnd, HWND_TOP, 0, 0, Cx, Cy, SWP_SHOWWINDOW
Pourtant les valeurs sont bonnes....

--
TouTi
Avatar
Jacques93
Bonjour Touti,
TouTi a écrit :

[...]


Merci pour tes recherches mais malheureusement cela ne fonctionne pas, du
moins la barre est cachée mais la form ne se redimensionne pas avec :
Cx = GetSystemMetrics(SM_CXSCREEN)
Cy = GetSystemMetrics(SM_CYSCREEN)
SetWindowPos frmMain.Hwnd, HWND_TOP, 0, 0, Cx, Cy, SWP_SHOWWINDOW
Pourtant les valeurs sont bonnes....

--
TouTi



Bizarre, pour moi c'est OK. Essaie dans un projet à part. Je vois que tu
as adapté le code (frmMain.Hwnd à la place de Me.Hwnd), il y a peut être
autre chose qui interfère dans ton projet (je me souviens de
LoadSettings pour la taille de la Form)

--
Cordialement,

Jacques.
Avatar
TouTi
Jacques
Bizarre, pour moi c'est OK. Essaie dans un projet à part. Je vois que tu
as adapté le code (frmMain.Hwnd à la place de Me.Hwnd), il y a peut être
autre chose qui interfère dans ton projet (je me souviens de
LoadSettings pour la taille de la Form)



Bizarre bizarre comme c bizarre

J'ai refait un essai sur un formulaire simple, et pu constater que cela
fonctionne que si la fenêtre n'a pas été agrandie au préalable. Si je clique
sur le bouton agrandir cela ne fonctionne pas. Maintenant je suis sous
win98 peut être y a t-il des différences avec les autres plateformes.

GuY - TouTi
--
Avatar
Jacques93
Bonsoir Touti,
TouTi a écrit :
Jacques

Bizarre, pour moi c'est OK. Essaie dans un projet à part. Je vois que tu
as adapté le code (frmMain.Hwnd à la place de Me.Hwnd), il y a peut être
autre chose qui interfère dans ton projet (je me souviens de
LoadSettings pour la taille de la Form)




Bizarre bizarre comme c bizarre

J'ai refait un essai sur un formulaire simple, et pu constater que cela
fonctionne que si la fenêtre n'a pas été agrandie au préalable. Si je clique
sur le bouton agrandir cela ne fonctionne pas. Maintenant je suis sous
win98 peut être y a t-il des différences avec les autres plateformes.

GuY - TouTi
--




Idem sous XP, mais tu as la (enfin au moins une) réponse dans la
question. Ajoutes :

If frmMain.WindowState = vbMaximized then
frmMain.WindowState = vbNormal 'ou vbMinimized
' ou réduis d'un pixel les propriétés Width, et Height de
' la feuille)
End If

avant

Cx = GetSystemMetrics(SM_CXSCREEN)
Cy = GetSystemMetrics(SM_CYSCREEN)
SetWindowPos frmMain.Hwnd, HWND_TOP, 0, 0, Cx, Cy, SWP_SHOWWINDOW

--
Cordialement,

Jacques.
Avatar
TouTi
Jacques
Idem sous XP, mais tu as la (enfin au moins une) réponse dans la
question. Ajoutes :
If frmMain.WindowState = vbMaximized then
frmMain.WindowState = vbNormal 'ou vbMinimized
' ou réduis d'un pixel les propriétés Width, et Height de
' la feuille)
End If
avant
Cx = GetSystemMetrics(SM_CXSCREEN)
Cy = GetSystemMetrics(SM_CYSCREEN)
SetWindowPos frmMain.Hwnd, HWND_TOP, 0, 0, Cx, Cy, SWP_SHOWWINDOW



Je vais essayé cela, mais à la place de cacher la barre des tâches, je vais
juste la redimensionner en cas ou mon programme se planterait.

GuY

--