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 ActiveX et SetWindowLongPtr


Sujet :

MFC

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Par défaut MFC ActiveX et SetWindowLongPtr
    Bonjour,

    J'ai un problème avec un MFC ActiveX
    si redéfinie la WindProc avec SubclassWindow ( utilisant SetWindowLongPtr ) dans mon ActiveXCtrl, je récupére à la destruction du plugin un assert dans wincore.cpp ligne 1007:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    #ifdef _DEBUG
    			ASSERT(pMap->LookupPermanent(hWndOrig) == NULL);
    #endif
    Que dois-je faire dans le destructeur du ActiveXCtrl pour ne plus avoir cet assert, et donc avoir un code plus propre?


    merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Par défaut
    le probleme reviens en fait à trouver ou placer le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SetWindowLongPtrA( GetSafeHwnd(),GWLP_WNDPROC, (LPARAM)(WNDPROC)lpOldProc );

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 93
    Par défaut
    La solution que j'ai pu trouver est d'utiliser un pointeur static vers mon controler qui permet d'appeller la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SetWindowLongPtrA( GetSafeHwnd(),GWLP_WNDPROC, (LPARAM)(WNDPROC)lpOldProc );
    une fois le message WM_DESTROY reçu...
    si qqun à une solution plus élégante je suis preneur

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

Discussions similaires

  1. [MFC / ActiveX] Navigation par tabulation
    Par tus01 dans le forum MFC
    Réponses: 8
    Dernier message: 11/02/2006, 01h02
  2. [MFC]ActiveX et boite de dialogue
    Par tus01 dans le forum MFC
    Réponses: 8
    Dernier message: 13/12/2005, 17h29
  3. [MFC]ActiveX + appel DLL
    Par Xeron dans le forum MFC
    Réponses: 4
    Dernier message: 22/06/2005, 16h39
  4. [MFC] ActiveX Mp3
    Par mulot49 dans le forum MFC
    Réponses: 2
    Dernier message: 03/03/2005, 17h26
  5. Réponses: 7
    Dernier message: 05/08/2004, 14h55

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