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++Builder Discussion :

Problème d'affichage de fenêtre


Sujet :

C++Builder

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 94
    Par défaut Problème d'affichage de fenêtre
    Bonjour,

    Je développe sur Builder C++ XE7 sour Windows 11

    Mon application contient plusieurs fenêtre dojt le WindowStyle est fsNormal.

    Une seule est en fsStayOnTop

    En exécutant le programme, cette fenêtre qui doit rester au premier plan semble perdre cet attribut au bout d'un certain temps, et se retrouve derrière les autres fenêtres si on clique sur celles-ci, alors que ce n'est pas le cas au début.

    Je précise qu'aucune modification de ces statuts fsNormal ou fsStayOnTop n'est effectuée par programme.

    Merci pour toute indication qui pourrait m'aider.

  2. #2
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 825
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 825
    Par défaut
    Bonjour,

    Si c'est la fenêtre principale, elle ne devrait pas être cachée sauf si elle est réduite. Si c'est une fenêtre secondaire, sa situation dépendra de celle de la fenêtre principale (par exemple sa minimisation cache aussi les fenêtres filles même fsStayOnTop).

    Entre applications, c'est chacun pour soi mais c'est un peu plus contraint au sein d'une application. Je présume que le problème ne se pose qu'entre les fenêtre de cette application et non avec les autres applications ?

    Dans le cas de fenêtres sœurs qui reçoivent le focus, il y a un conflit intra applicatif si une fenêtre de l'application cache, même partiellement, celle active. Par exemple, comment modifier interactivement un texte d'une fenêtre cachée ? Il est alors possible que la fenêtre qui reçoit le focus prenne un z au dessus de la fenêtre qui devrait rester au dessus (à vérifier).

    Salutations

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 500
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 500
    Par défaut
    Parfois il est intéressant de travailler avec une fenêtre parent et des fenêtres enfants sans pour autant être dans un contexte de MDIChild et d'avoir une fenêtre en prmier plan (StayOnTop).
    Dans ce contexte précis :
    - la fenêtre principale sera toujours affichée en premier, donc en arrière plan
    - les fenêtres enfants, si elles sont visibles, seront toujours affichées par dessus la fenêtre principale
    - la StayOnTop, si elle est visible, sera toujours affichée en dernier donc au premier plan.

    Par contre il existe une manière de contrôler le Z Ordre à l'aide des fonctions API WINDOWS.
    Ca repose sur un test à effectuer lors du OnPaint de chaque fenêtre non StayOnTop pour récupérer la fenêtre au premier plan avec GetTopWindow.
    En cas de modification intempestif du Z Ordre il suffit de replacer la stayOnTop avec SetWindowPos dont on fixe le paramètre hWndInsertAfter sur HWND_TOPMOST.
    Par contre ces deux API fonctionnent au niveau HWND et non TForm !
    Donc ... (je ne me souviens plus comment on récupère le HWND dans BCB ... !!!)

Discussions similaires

  1. Style d'affichage fentre
    Par zpico dans le forum Débuter avec Java
    Réponses: 5
    Dernier message: 21/07/2011, 15h42
  2. Pb affichage avec un PaintBox (pour eviter scintillement)
    Par juan64 dans le forum C++Builder
    Réponses: 7
    Dernier message: 08/04/2004, 09h21
  3. Affichage de documents PDF
    Par Dajon dans le forum C++Builder
    Réponses: 5
    Dernier message: 10/10/2002, 11h36
  4. probléme d'affichage d'une fiche
    Par sb dans le forum Composants VCL
    Réponses: 7
    Dernier message: 29/08/2002, 09h43
  5. Affichage en passant par un buffer...
    Par Sirotilc dans le forum MFC
    Réponses: 5
    Dernier message: 27/05/2002, 21h00

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