Mettre une WinForm en arriere plan

cs_slyer Messages postés 1 Date d'inscription mercredi 13 août 2003 Statut Membre Dernière intervention 29 octobre 2004 - 29 oct. 2004 à 19:38
TheSaib Messages postés 2368 Date d'inscription mardi 17 avril 2001 Statut Modérateur Dernière intervention 26 décembre 2007 - 2 nov. 2004 à 08:11
Salut, je recherche comment mettre un WinForm en arriere plan.
Jai vu qu'il existe des appli ( principalement de monitoring ) qui on l'air d'etre integrer au Wallpaper ou qui s'emble etre comme une barre d'outils.

Merci de votre aide

PS: en c# ;)

5 réponses

janctil Messages postés 25 Date d'inscription vendredi 25 avril 2003 Statut Membre Dernière intervention 2 novembre 2004
29 oct. 2004 à 21:23
Salut,

Je sais pas si c'est ça qu'il te faut, mais tu peux utiliser le contrôle "NotifyIcon" dans ton appli principal, pour quel monitorise par exemple en arrière plan et y accéder à partir de la barre des tâche en bas à droite....

J
0
janctil Messages postés 25 Date d'inscription vendredi 25 avril 2003 Statut Membre Dernière intervention 2 novembre 2004
29 oct. 2004 à 21:24
quand je parle de "monitorise", je parle de l'appli et non du contrôle...
0
janctil Messages postés 25 Date d'inscription vendredi 25 avril 2003 Statut Membre Dernière intervention 2 novembre 2004
29 oct. 2004 à 21:32
encore moi voici le code qu'il te faut pour mettre ton appli en arrière plan avec le notifyIcon :


private void Form1_Resize(object sender, System.EventArgs e)
{
   if (FormWindowState.Minimized == WindowState)
      Hide();
}

private void notifyIcon1_DoubleClick(object sender,
                                     System.EventArgs e)
{
    Show();
    WindowState = FormWindowState.Normal;
}

0
TheSaib Messages postés 2368 Date d'inscription mardi 17 avril 2001 Statut Modérateur Dernière intervention 26 décembre 2007 23
2 nov. 2004 à 08:11
Si tu parles de la barre d'ecran qui raccourci le desktop il faut voir du côté des api


public class Desktop
{
#region API
[DllImport("user32.dll", EntryPoint="SystemParametersInfoA")]
private static extern int SystemParametersInfo (int uAction, int uParam, BarUi.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);}

}

[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
}


a utiliser comme çà :

private RECT m_RECTInit = new RECT();
private const int m_Height= 60;

private void Form1_Load(object sender, System.EventArgs e)
{
Desktop.getWorkspace(m_RECTInit);
this.Width = Screen.PrimaryScreen.Bounds.Width;
this.Height = m_Height ;
this.Left = m_RECTInit.Left;
this.Top = m_RECTInit.Top;

RECT oRECT = (RECT) m_RECTInit.Clone();
oRECT.Right = m_RECTInit.Right-this.Width;
oRECT.Top = m_Height;
Desktop.setWorkspace(oRECT);
}

private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
RECT oRect = new RECT();
oRect.Bottom = Screen.PrimaryScreen.Bounds.Bottom;
oRect.Left = Screen.PrimaryScreen.Bounds.Left ;
oRect.Top = Screen.PrimaryScreen.Bounds.Top ;
oRect.Right = Screen.PrimaryScreen.Bounds.Width;
Desktop.setWorkspace(oRect);
}



::|The S@ib|::
MVP C#.NET
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
TheSaib Messages postés 2368 Date d'inscription mardi 17 avril 2001 Statut Modérateur Dernière intervention 26 décembre 2007 23
2 nov. 2004 à 08:11
Reste a dessiner ta form correctement après

::|The S@ib|::
MVP C#.NET
0