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 :

Probleme avec MFC : GetWindowRect


Sujet :

MFC

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    D�veloppeur .NET
    Inscrit en
    F�vrier 2006
    Messages
    26
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : France, Loire (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 26
    Par d�faut Probleme avec MFC : GetWindowRect
    Bonjour,

    Je rencontre actuellement un probl�me dans le developpement d'un logiciel sous visual c++ 6 � l'aide des MFC.
    J'ai cr�� une classe h�ritant de CDialog dont je voudrais obtenir les dimensions.
    Voici une partie de mon code plac�e dans le constructeur de ma classe :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    RECT *myRect = new CRect(); 
    GetWindowRect(myRect);
    La compilation se passe sans probl�me par contre � l'ex�cution j'obtiens ce message d'erreur :
    "Debug Assertion Failed!
    File : afxwin2.inl
    Line : 96
    ..."

    Si je place l'appel � la fonction GetWindowRect en commentaire le probl�me disparait.

    Je pr�cise quand m�me que j'ai �ffectu� pas mal de recherche (msdn, google, developpez.com, ...) et que je n'ai pas trouv� de solution.

    Merci d'avance

  2. #2
    Membre Expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Par d�faut
    euh c pas ca :

    au lieu de


  3. #3
    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
    Par d�faut
    salut,
    bien, nul besoin de faire un new (en dehors du fait que ton code n'etait pas correct).
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    CRect Rect;
    GetWindowRect(&Rect);
    c'est tout.
    ce code fonctionnera bien si le context est correct ,c'est � dire si la fenetre pour laquelle GetWindowRect s'applique est initialis�e graphiquement.

  4. #4
    Membre averti
    Homme Profil pro
    D�veloppeur .NET
    Inscrit en
    F�vrier 2006
    Messages
    26
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : France, Loire (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 26
    Par d�faut
    Citation Envoy� par hiko-seijuro
    euh c pas ca :

    au lieu de

    Oups ! d'ailleurs j'ai fait une autre erreur en recopiant de t�te, c'est
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    CRect *rec = new CRect();
    GetWindowRect(rec)
    que je fesais, d�sol� pour les 2 erreurs.

    Citation Envoy� par farscape
    salut,
    bien, nul besoin de faire un new (en dehors du fait que ton code n'etait pas correct).
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    CRect Rect; 
    GetWindowRect(&Rect);
    c'est tout.
    ce code fonctionnera bien si le context est correct ,c'est � dire si la fenetre pour laquelle GetWindowRect s'applique est initialis�e graphiquement.
    J'ai d�ja essay� de faire cela et j'obtiens la m�me erreur, donc a priori c'est un probl�me venant de ma boite de dialogue Pourtant je ne vois rien d'exeptionnel, je d�bute avec les MFC donc je n'ai pas modifi� grand chose, juste ajouter une ou deux variables protected ainsi qu'un control tree et deux ou trois boutons. Petit d�tail peut-�tre important cela compile une dll qui est executer en tant que plugin dans le logiciel final, serait-ce un probl�me de d�pendance ?

    En tout cas merci d'avoir pris la peine de r�pondre.

  5. #5
    Membre averti
    Homme Profil pro
    D�veloppeur .NET
    Inscrit en
    F�vrier 2006
    Messages
    26
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : France, Loire (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 26
    Par d�faut
    Correction, en fait ce sont mes initialisations dans le constructeur qui me provoquent ces erreurs. Comme je l'ai dis je fait mes premiers pas avec les MFC donc il est tout � fait probable que je fasse une erreur de d�butant, je suis donc preneur de tout conseil

  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
    Par d�faut
    les fenetres graphiques ne sont pas initialis�es dans le constructeur.
    la premiere fonction qui permet de faire des traitements graphiques est :
    OnInitDialog pour une CDialog.
    et OnInitialUpdate pour une CView ,CScrollView ,CFormView etc ...
    je te conseille de lire mon tuto ..
    http://farscape.developpez.com/tutor...arrer-mfc-vc6/

  7. #7
    Membre averti
    Homme Profil pro
    D�veloppeur .NET
    Inscrit en
    F�vrier 2006
    Messages
    26
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : France, Loire (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 26
    Par d�faut
    Citation Envoy� par farscape
    les fenetres graphiques ne sont pas initialis�es dans le constructeur.
    la premiere fonction qui permet de faire des traitements graphiques est :
    OnInitDialog pour une CDialog.
    et OnInitialUpdate pour une CView ,CScrollView ,CFormView etc ...
    je te conseille de lire mon tuto ..
    http://farscape.developpez.com/tutor...arrer-mfc-vc6/
    Je l'avais uniquement survol� Mais maintenant je l'ai completement lu et j'ai compris mon erreur. J'ai d�plac� toutes mes initialisations dans OnInitDialog() et je n'ai plus de probl�me (et GetWindowRect marche tr�s bien).

    Un grand merci � vous pour votre aide, et plus sp�cialement � farscape pour son excellent tuto

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. probleme avec Mfc sous Vc6
    Par raggnar dans le forum MFC
    R�ponses: 6
    Dernier message: 25/09/2006, 11h59
  2. [MFC]Probleme avec attributs d'une LOGFONT
    Par Fildz dans le forum MFC
    R�ponses: 3
    Dernier message: 08/01/2006, 17h59
  3. R�ponses: 18
    Dernier message: 06/10/2005, 09h09
  4. [MFC] probleme avec CFile
    Par benahpets dans le forum MFC
    R�ponses: 12
    Dernier message: 18/08/2005, 10h29
  5. R�ponses: 13
    Dernier message: 02/02/2005, 00h21

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