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

MFC Discussion :

[MFC]Positionnement et focus


Sujet :

MFC

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 91
    Points : 47
    Points
    47
    Par défaut [MFC]Positionnement et focus
    Salu tout le monde.

    Alors mon premier probleme viens du fait que j'utilise l'option ShowWindow(SW_SHOWMAXIMIZED).

    Cela me met bien la fenetre en pleine ecran mais les boutons reste au milieu et ne sont pas decalé au coin gauche.

    Et le deuxieme c'est que j'arrive pas a mettre le focus(c a d que quand on clique sur entrer ca prennent ce bouton avec :

    m_boutonEnvoi.SetFocus(); dans le initdialog

    Merci d'avance

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut Re: [MFC]Positionnement et focus
    Citation Envoyé par poseidon2
    Salu tout le monde.

    Alors mon premier probleme viens du fait que j'utilise l'option ShowWindow(SW_SHOWMAXIMIZED).

    Cela me met bien la fenetre en pleine ecran mais les boutons reste au milieu et ne sont pas decalé au coin gauche.

    Et le deuxieme c'est que j'arrive pas a mettre le focus(c a d que quand on clique sur entrer ca prennent ce bouton avec :

    m_boutonEnvoi.SetFocus(); dans le initdialog

    Merci d'avance
    2 choses donc:
    1) il n'y a pas de raison que ça le fasse tout seul ,pas de gestion de layout en natif .
    voir post it :
    http://www.developpez.net/forums/vie...695999#1695999
    2) la touche entrée c'est particulier ,et si un bouton dispose de l'option default button dans les resources c'est lui qui va etre appelé,
    ce qui est le cas par defaut du bouton OK.
    donc met cette option sur ton bouton et decoche la pour les autres .

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 91
    Points : 47
    Points
    47
    Par défaut
    Merci bien ca a l'air de marcher Juste j'ai pleinde warning en implementant ta classe mais je vais faire avec.

    A si une petite question: pourquoi hpp?

    Merci(je metrais resolu des que ca marchera vraiment )

  4. #4
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    re,
    j'ai modifié et tester sous .net 2003 .
    le projet est mis à jour aussi.
    pourquoi .hpp ? ,j'ai pris l'habitude pour les classes template de proceder ainsi.
    ça me permet de les retrouver plus facilement parmis les autres classes..

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 91
    Points : 47
    Points
    47
    Par défaut
    C'est bon ca marche. Merci.

    Par contre une derniere question/information :

    J'ai le code de compil ci dessous et je n'avais jamais vu ca :
    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
    32
    33
    34
    35
    36
    37
    ChamadeVC3.cpp
            c:\Documents and Settings\Chamade\Bureau\econf\ChamadeVC++\TplLayout.hpp(273) : lors de la compilation de la fonction membre du modèle de classe 'LRESULT CTplLayout<GENERIC_LAYOUT>::DefWindowProcA(UINT,WPARAM,LPARAM)'
            with
            [
                GENERIC_LAYOUT=CDialog
            ]
            c:\Documents and Settings\Chamade\Bureau\econf\ChamadeVC++\ChamadeVC3.h(9) : voir la référence à l'instanciation du modèle de classe 'CTplLayout<GENERIC_LAYOUT>' en cours de compilation
            with
            [
                GENERIC_LAYOUT=CDialog
            ]
    ChamadeVC2.cpp
    ChamadeVC++Dlg.cpp
    c:\Documents and Settings\Chamade\Bureau\econf\ChamadeVC++\TplLayout.hpp(276) : warning C4244: 'argument' : conversion de 'WPARAM' en 'UINT', perte possible de données
            c:\Documents and Settings\Chamade\Bureau\econf\ChamadeVC++\TplLayout.hpp(273) : lors de la compilation de la fonction membre du modèle de classe 'LRESULT CTplLayout<GENERIC_LAYOUT>::DefWindowProcA(UINT,WPARAM,LPARAM)'
            with
            [
                GENERIC_LAYOUT=CDialog
            ]
            c:\Documents and Settings\Chamade\Bureau\econf\ChamadeVC++\ChamadeVC3.h(9) : voir la référence à l'instanciation du modèle de classe 'CTplLayout<GENERIC_LAYOUT>' en cours de compilation
            with
            [
                GENERIC_LAYOUT=CDialog
            ]
    ChamadeVC++.cpp
    c:\Documents and Settings\Chamade\Bureau\econf\ChamadeVC++\TplLayout.hpp(276) : warning C4244: 'argument' : conversion de 'WPARAM' en 'UINT', perte possible de données
            c:\Documents and Settings\Chamade\Bureau\econf\ChamadeVC++\TplLayout.hpp(273) : lors de la compilation de la fonction membre du modèle de classe 'LRESULT CTplLayout<GENERIC_LAYOUT>::DefWindowProcA(UINT,WPARAM,LPARAM)'
            with
            [
                GENERIC_LAYOUT=CDialog
            ]
            c:\Documents and Settings\Chamade\Bureau\econf\ChamadeVC++\ChamadeVC3.h(9) : voir la référence à l'instanciation du modèle de classe 'CTplLayout<GENERIC_LAYOUT>' en cours de compilation
            with
            [
                GENERIC_LAYOUT=CDialog
            ]
    cctrleconf1.cpp
    Pourqoi des bous de code apparaissent-ils?

  6. #6
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    hum bizarre , la compil sous .net 2003 du projet fournis en exemple ne provoque pas ces avertissements.
    Compilation...
    StdAfx.cpp
    WINVER not defined. Defaulting to 0x0501 (Windows XP and Windows .NET Server)
    Compilation...
    TplMDIFrame.cpp
    TestMdILayoutView.cpp
    TestMdILayoutDoc.cpp
    TestMdILayout.cpp
    c:\MsDev\Samples\TestMdILayout\TestMdILayout.cpp(61) : warning C4996: 'CWinApp::Enable3dControls' a été déclaré désapprouvé
    c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\include\afxwin.h(4369) : voir la déclaration de 'CWinApp::Enable3dControls'
    MyDlgBar.cpp
    MainFrm.cpp
    ChildFrm.cpp
    Génération de code en cours...
    Édition des liens en cours...
    LINK : warning LNK4075: ' /EDITANDCONTINUE' ignoré à cause de la spécification '/INCREMENTAL:NO'
    Le journal de génération a été enregistré à l'emplacement "file://c:\MsDev\Samples\TestMdILayout\Debug\BuildLog.htm"
    TestMdILayout - 0 erreur(s), 2 avertissement(s)
    ---------------------- Terminé ----------------------
    Génération : 1 a réussi, 0 a échoué, 0 a été ignoré
    [/code]
    dans le cas de la dialogue tu as bien procedé comme suit sur le constructeur ?
    [code]
    CMyDlg::CMyDlg() : CTplLayout<CDialog>(CMyDlg::IDD)
    {

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 91
    Points : 47
    Points
    47
    Par défaut
    oui mis a par que moi j'ai un parent et est donc :
    IMPLEMENT_DYNAMIC(ChamadeVC3, CDialog)
    ChamadeVC3::ChamadeVC3(CWnd* pParent )
    : CTplLayout<CDialog>(ChamadeVC3::IDD)
    {
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MFC]Probleme de Focus
    Par Sojiro dans le forum MFC
    Réponses: 2
    Dernier message: 29/10/2007, 11h22
  2. Positionnement du focus d'un form à un sous-form
    Par snoopy69 dans le forum Access
    Réponses: 3
    Dernier message: 12/07/2006, 10h46
  3. [MFC] Positionnement incorrect de 2 toolbar
    Par Philippe320 dans le forum MFC
    Réponses: 3
    Dernier message: 09/07/2006, 09h24
  4. positionner le focus dans un div
    Par bat dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 12/10/2005, 11h46
  5. [MFC] positionner une CToolBar
    Par bigboomshakala dans le forum MFC
    Réponses: 2
    Dernier message: 02/12/2004, 01h21

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