IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

[C#/Win API] Supprimer bordure fenêtre windows - Bug graphique


Sujet :

C#

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Par défaut [C#/Win API] Supprimer bordure fenêtre windows - Bug graphique
    Bonsoir à tous,

    Je tente désespéramment de supprimer la bordure de la console Windows (DOS) appelée par Process.Start() à partir de mon application C#.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
                IntPtr hWndDocked = IntPtr.Zero;
     
                Process pDocked = new Process();
                pDocked.StartInfo.FileName = @"cmd";
                pDocked.Start();
                while (hWndDocked == IntPtr.Zero)
                {
                    pDocked.Refresh();              //update process info
                    if (pDocked.HasExited)
                    {
                        return null; //abort if the process finished before we got a handle.
                    }
                    hWndDocked = pDocked.MainWindowHandle;  //cache the window handle
                }
     
                uint lStyle = GetWindowLong(hWndDocked, GWL_STYLE);
                lStyle &= ~(
                                WindowStyles.WS_SYSMENU
                                | WindowStyles.WS_THICKFRAME
     
                                //| WindowStyles.WS_BORDER 
                                | WindowStyles.WS_CAPTION
                                | WindowStyles.WS_OVERLAPPED
     
                              );
     
                SetWindowLong(hWndDocked, GWL_STYLE, lStyle);
     
                SetWindowPos(hWndDocked, HWND_TOP, 0, 0, 0, 0,
                     SWP_NOMOVE | SWP_NOSIZE | SWP_FRAMECHANGED);
    Le code fonctionne, la bordure est bien supprimée en enlevant le flag WindowStyles.WS_CAPTION mais par contre, j'ai un bug graphique à droite et en bas et je n'arrive pas à rafraichir la zone concernée. Même problème j'essaye de supprimer le flag WindowStyles.WS_BORDER... ou même les deux en même temps.

    J'ai essayé plein de fonctions de l'API windows mais sans succès. Je dois mal m'y prendre

    Voilà en PJ une capture du résultat.

    Merci à vous et bonne soirée
    Images attachées Images attachées  
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

Discussions similaires

  1. Redimensionner fenêtre en WIN API
    Par nike547 dans le forum Windows
    Réponses: 2
    Dernier message: 04/05/2010, 14h00
  2. Réponses: 5
    Dernier message: 28/07/2009, 22h21
  3. Réponses: 4
    Dernier message: 05/09/2005, 16h01
  4. [API] Supprimer un objet
    Par Halleck dans le forum Windows
    Réponses: 11
    Dernier message: 10/04/2004, 01h34
  5. Style d'un fenêtre Windows
    Par Zazeglu dans le forum Windows
    Réponses: 4
    Dernier message: 12/10/2003, 18h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo