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 :

Afficher du html avec un CHtmlEditCtrl


Sujet :

MFC

  1. #1
    Invité
    Invité(e)
    Par défaut Afficher du html avec un CHtmlEditCtrl
    Bonjour,
    j'ai une fenêtre dans laquelle j'aimerais insérer un contrôle pour afficher du html à partir d'une chaîne.
    J'ai donc créé une classe qui hérite de CHtmlEditCtrl. Je créé mon contrôle avec un Create, et tout se passe bien jusqu'au moment où je veux afficher du html.
    J'ai écrit une méthode Write que voici :
    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
    38
    39
    40
    41
    42
     
    bool CMyHtmlEditCtrl::Write(char *szTexte)
    {
    	if (!szTexte || !*szTexte)
    		return false;
     
    	IHTMLDocument2 *pIHTMLDocument2 = NULL;
    	BOOL ret = this->GetDHtmlDocument(&pIHTMLDocument2);
     
    	ASSERT(pIHTMLDocument2);
     
    	if (!pIHTMLDocument2)
    		return false;
     
    	HRESULT hresult = S_OK;
    	VARIANT *param;
    	SAFEARRAY *sfArray;
     
    	// Creates a new one-dimensional array
    	sfArray = SafeArrayCreateVector(VT_VARIANT, 0, 1);
     
    	if ((sfArray != NULL) && (pIHTMLDocument2 != NULL))
    	{
    		hresult = SafeArrayAccessData(sfArray,(LPVOID*) & param);
    		param->vt = VT_BSTR;
    		param->bstrVal = CString(szTexte).AllocSysString();
    		hresult = SafeArrayUnaccessData(sfArray);
    		hresult = pIHTMLDocument2->write(sfArray);
     
    		if (!SUCCEEDED(hresult))
    			MessageBox("Pas trouvé le body", "", MB_OK);
     
    		hresult = pIHTMLDocument2->close();
    	}
     
    	if (sfArray != NULL)
    		SafeArrayDestroy(sfArray);
     
    	pIHTMLDocument2->Release();
     
    	return true;
    }
    J'ai un crash sur cette ligne :
    hresult = pIHTMLDocument2->write(sfArray);

    Exception non gérée à 0x44bbd9e6 dans AmelioreOrthographeMDI.exe*: 0xC0000005: Violation d'accès lors de la lecture de l'emplacement 0xfeeeff16.
    Si vous avez une idée d'où vient le crash, c'est super. Si vous avez une méthode pour afficher du html dans un ctrl sans passer par ce bazar, ça me va aussi.

    Merci

  2. #2
    Membre éclairé Avatar de vanitom
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 327
    Par défaut
    Regarde cet article il t'aidera peut être

    http://www.codeproject.com/KB/miscct...trlsample.aspx

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci ! Entretemps je suis arrivé à une solution qui marche avec un CDHtmlDialog. C'est un peu tuer une mouche avec une bombe atomique que de passer par là juste pour ça. Si ça devient trop lourd, j'utiliserai la méthode de l'article.

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

Discussions similaires

  1. Afficher du html avec Angular V 1.2.6
    Par bipbip2006 dans le forum AngularJS
    Réponses: 4
    Dernier message: 28/11/2014, 16h11
  2. [strategie][swing]afficher du HTML avec java
    Par Invité dans le forum AWT/Swing
    Réponses: 8
    Dernier message: 30/04/2008, 10h45
  3. Afficher du html avec du javascript?
    Par wormseric dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 25/08/2006, 14h40
  4. [struts][]taglib bean] afficher html avec write
    Par mlequim dans le forum Struts 1
    Réponses: 6
    Dernier message: 04/11/2005, 18h44
  5. Afficher du XML avec du HTML
    Par BipBip2 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 05/04/2005, 10h45

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