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

Windows Discussion :

sous fenêtre (API windows)


Sujet :

Windows

  1. #1
    Membre régulier Avatar de O( N )
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2006
    Messages : 126
    Points : 120
    Points
    120
    Par défaut sous fenêtre (API windows)
    Bonjour,

    j'aimerais savoir comment on peut réaliser une sous fenêtre sans que celle-ci prenne
    nécessairement l'icône et le menu de la fenêtre parent dont elle provient.

    De même, lorsque je tue la fenêtre fille je tue aussi la mère !
    Je dois créer une procédure de gestion de fenêtre supplémentaire
    (une pour chaque fenêtre ) ?

    Merci pour vos réponses
    Dans la vie il faut se cultiver ! Je suis développeur,
    je cultive des bogues.

    Citer c'est avouer qu'on a les mêmes idées que d'autres
    sans être capable de faire des phrases soit même ! - moi

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Tu parles ici d'Owned Window (genre, une boîte de dialogue modale) et non de Child Window, non ?
    Si tes deux fenêtres doivent avoir des fonctionnements différents, il te faut donc de procédures de fenêtre différentes.
    Donc sans doute, deux classes de fenêtre différentes (à moins qu'il soit question de boîtes de dialogues).

    Pour ce qui est de l'icône, en théorie ça va avec la classe de fenêtre. Mais Windows a un drôle de comportement par défaut pour les fenêtres créées sans icônes. À mon avis, il est plus facile de forcer une icône différente que de forcer "pas d'îcône du tout"...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre régulier Avatar de O( N )
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2006
    Messages : 126
    Points : 120
    Points
    120
    Par défaut
    Oui
    je parle de non modale et ce sont des fenêtres (pas des boites de dialogues)

    Cependant la sous-fenêtre ne doit pas sortir de la fenêtre un peu comme une fenêtre fille (il me semble).

    Si je tue la fenêtre fille cela ne doit pas affecter la fenêtre mère (d'où ici je pense la création d'une autre classe de fenêtre) !

    C'est là le conflit, vu mon manque de pratique aussi
    si je créé une nouvelle classe de fenêtre et
    si je veux que ma sous-fenêtre soit limité en espace à celui de la fenêtre 'mère',
    cela me semble bizarre ! car pour cela je dois être de la même classe non ?
    Dans la vie il faut se cultiver ! Je suis développeur,
    je cultive des bogues.

    Citer c'est avouer qu'on a les mêmes idées que d'autres
    sans être capable de faire des phrases soit même ! - moi

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Citation Envoyé par O( N )
    Oui
    je parle de non modale et ce sont des fenêtres (pas des boites de dialogues)

    Cependant la sous-fenêtre ne doit pas sortir de la fenêtre un peu comme une fenêtre fille (il me semble).
    Dans ce cas, autant employer directement une fenêtre fille (et pourquoi pas une MDI), ce sera plus simple...

    Si je tue la fenêtre fille cela ne doit pas affecter la fenêtre mère (d'où ici je pense la création d'une autre classe de fenêtre) !
    +1

    si je créé une nouvelle classe de fenêtre et
    si je veux que ma sous-fenêtre soit limité en espace à celui de la fenêtre 'mère',
    cela me semble bizarre ! car pour cela je dois être de la même classe non ?
    Ça, ça n'a absolument rien à voir. On ne peut pas limiter une fenêtre non-fille à l'espace d'une autre, sauf peut-être en interceptant WM_MOVING...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre régulier Avatar de O( N )
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2006
    Messages : 126
    Points : 120
    Points
    120
    Par défaut
    pour mdi j'y ai pensé (car j'ai déjà vu çà en 'SCHEME' mdi-child),
    mais je ne savais pas si cela existait aussi en 'C' (api windows) et sous quelle forme !

    +1 : j'ai raison c'est çà ?

    Si je créé une fenêtre en mode mdi d'une autre fenêtre, lorsque je la tue,
    elle se réfère à la même classe que la mère et donc je tue la mère aussi ?

    Puis-je créé une 'MDI' ayant une classe différente ?
    Pour qu'elle ne tue pas sa mère et qu'elle soit confiné dans la fenêtre mère !
    Dans la vie il faut se cultiver ! Je suis développeur,
    je cultive des bogues.

    Citer c'est avouer qu'on a les mêmes idées que d'autres
    sans être capable de faire des phrases soit même ! - moi

  6. #6
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Pour faire du MDI sous Win32, il y a des guidelines assez particulières.
    Je ne me souviens pas de toutes, mais entre autres:
    • À la place de DefWindowProc(), la fenêtre mère doit appeler DefFrameProc().
    • À la place de DefWindowProc(), la fenêtre fille doit appeler DefMDIChildProc().
    • La fenêtre mère doit contenir une fenêtre MDIClient qui se charge de créer les fenêtres filles.

    Ah, j'ai retrouvé le lien:
    http://msdn2.microsoft.com/en-us/library/ms632591.aspx

    Note: La doc de l'API Windows parle souvent de C++, mais ces fonctions sont tout-à-fait utilisables en C.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    Membre régulier Avatar de O( N )
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2006
    Messages : 126
    Points : 120
    Points
    120
    Par défaut
    Merci beaucoup,
    je vais de ce pas faire un peu de lecture shakespearienne

    Si je réalise le code je le mettrais en ligne après !
    Dans la vie il faut se cultiver ! Je suis développeur,
    je cultive des bogues.

    Citer c'est avouer qu'on a les mêmes idées que d'autres
    sans être capable de faire des phrases soit même ! - moi

Discussions similaires

  1. Réponses: 4
    Dernier message: 04/12/2007, 21h29
  2. Réponses: 2
    Dernier message: 04/05/2006, 19h53
  3. [DELPHI6][API Windows] Fenêtre - Process
    Par Desraux dans le forum API, COM et SDKs
    Réponses: 1
    Dernier message: 02/06/2005, 17h55
  4. Stocker un imprim ecran sous bmp avec l'api windows
    Par Tofalu dans le forum Windows
    Réponses: 7
    Dernier message: 04/05/2005, 11h32
  5. [API Windows] Mettre une fenêtre à jour
    Par Zazeglu dans le forum Autres éditeurs
    Réponses: 7
    Dernier message: 22/01/2004, 15h48

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