Réduire l'espace de travail du bureau pour accueillir une toolbar winform...
seup
Messages postés16Date d'inscriptionsamedi 4 mai 2002StatutMembreDernière intervention23 avril 2007
-
19 août 2004 à 16:57
wald39
Messages postés68Date d'inscriptionjeudi 5 janvier 2006StatutMembreDernière intervention23 février 2011
-
21 févr. 2006 à 10:19
Salut tout le monde...
Je cherche a faire une toolbar un peu comme celle de windows.
le but c'est qu'elle s'affiche sur la droite de mon écran et que toutes les fenetres ouvertes ne se superposent pas sur elle.
Il faut donc réduire l'espace de travail du bureau windows.
L'objet screen a bien une propriété WorkingArea mais on ne peut pas la modifier...
J'ai trouvé une source qui fait ca mais en vb6, si quelqu'un peut me donner des piste pour passer ca en .net, je serais votre humble serviteur jusqu'a la fin de mes jours ;)
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 20 août 2004 à 14:10
je pense plutot qu'il veut faire comme pour la barre des taches en fait : qu'une fenetre maximisée ne passe pas au dessus de son form (et inversement)
j'ai deja vu mais pas moyen de me rappeler où
seup
Messages postés16Date d'inscriptionsamedi 4 mai 2002StatutMembreDernière intervention23 avril 2007 24 août 2004 à 18:48
C'est exactement ca que je veux faire coq... t'as tout compris ;)
bucherb, je suis en train de tenter de porter le code VB6 en C# mais la je bloque... Comment on déclare des API en C# ?
Si quelqu'un a la réponse, merci d'avance !
L'autre problème c'est que ce code VB6 est super pointu ! je pense pas avoir besoin de tout ca, si quelqu'un peut m'aider a isoler la fonction qui redimmensionne le WorkArea (Espace Bureau) ca serait trop top les gars...
wald39
Messages postés68Date d'inscriptionjeudi 5 janvier 2006StatutMembreDernière intervention23 février 20117 20 févr. 2006 à 19:30
Bjr, je c ke le sujet est vieu, mai moi jai trouver qu'il fallait utiliser la dll user32.dll, jusque la pa de pb je v vous montrer :
voici ma class Bureau ainsi ke Rect
using System;
using System.Runtime.InteropServices;
namespace ToolBarWMP1
{
[StructLayout(LayoutKind.Sequential)]
public class RECT : ICloneable
{
public int Left;
public int Top;
public int Right;
public int Bottom;
#region Membres de ICloneable
public object Clone()
{
RECT oRECT = new RECT(); oRECT.Top this.Top; oRECT.Bottom this.Bottom; oRECT.Left this.Left; oRECT.Right this.Right;
return oRECT;
}
#endregion
}
public class Bureau
{
#region API
[DllImport("user32.dll", EntryPoint="SystemParametersInfoA")]
private static extern int SystemParametersInfo (int uAction, int uParam, ToolBarWMP1.RECT lpvParam, int fuWinIni);
private const int SPI_GETWORKAREA = 48;
private const int SPI_SETWORKAREA = 47;
private const int SPIF_SENDCHANGE = 2;
#endregion
public static void getWorkspace(RECT oRECT)
{int iResult = SystemParametersInfo(SPI_GETWORKAREA,0,oRECT,0);}
public static int setWorkspace(RECT oRect)
{return SystemParametersInfo(SPI_SETWORKAREA,0,oRect,SPIF_SENDCHANGE);}
}
}
je les utilise com ceci :
private RECT m_RECTInit = new RECT();
private void Form1_Load(object sender, System.EventArgs e)
{
//Sauvegarde de l'ancien bureau
Bureau.getWorkspace(m_RECTInit);
this.Left = m_RECTInit.Left;
this.Top = m_RECTInit.Top;
this.Width = m_RECTInit.Right;
this.Height = 32;
//Création du nouveau bureau
RECT oRECT = (RECT) m_RECTInit.Clone();
oRECT.Bottom= m_RECTInit.Bottom-this.Height;
Bureau.setWorkspace(oRECT);
}
Voila se ke jai fais mais l'espace de travail n'est pa redimensionner ma barre s'affiche bien en haut com je le veut mais les fenetres peuvent passer en dessous, je voudrait vraiment realiser une barre comme la barre des taches ou rien ne peu passer dessus ou en-dessous, alor si kelkun peu m'aider . Merci d'avance
wald39
Messages postés68Date d'inscriptionjeudi 5 janvier 2006StatutMembreDernière intervention23 février 20117 21 févr. 2006 à 10:19
oui les fenetres en plein ecran passe sous ma barre. Et moi je ne veu pas kel puisse passe dessous, je veux redimensionner l'espace de travail du bureau