none
Application MFC avec boites de dialogue HTML RRS feed

  • Question

  • Bonjour,

    Je suis en train de développer une petite application , sous Windows 7 PRO, avec Visual Studio 2010 PRO C++: application MFC avec boites de dialog HTML.

    Je sais créer des fonctions dans le code HTML pour lire un champ de sasie d'une zone de texte:

    <script type="text/javascript">
    
    
    function GereBoutonRESERVATION() {
    	var geocodeLocation = document.getElementById('SaisirVilleReservation').value;
    }
    		</script>
    
    ...
    
    
    <INPUT 
    id="SaisirVilleReservation"	type="text"	  
    value="Toulon" 
    style="border: thin solid #ff9900; BACKGROUND-COLOR: #ffff99; FONT-FAMILY: Tahoma; HEIGHT: 26px; ">
    		
    <INPUT 
    id="BoutonVille"	
    type="button" value="RESERVER"			onclick="return GereBoutonRESERVATION()"			style="background-color: #FFFF00; font-family: Tahoma; border: thin solid #FF9900" NAME="BoutonVille">

    Comment faire pour appeler la fonction GereBoutonRESERVATION() présente dans le code HTML dans mon code en C++ ( dans une fonction OnTimer par exemple ) ?


    Delphine GARRO



    mardi 23 octobre 2012 15:24

Réponses

  • Voici une petite solution trouvée, qui marche parce que la fonction appelée GereBoutonRESERVATION() ne fait appel à aucun argument. La classe associé à ma fenêtre de dialogue MFC classique s'appelle ici CMaClassseHTMLDlg .

    void CMaClassseHTMLDlg::OnBnClickedExecutejavafunction()
    {
      ExecuteUneFonctionJAVA( _T( "GereBoutonRESERVATION") );
    }
    void CMaClassseHTMLDlg:: ExecuteUneFonctionJAVA( BSTR ASCIIfonction )
    {
    	CComPtr<IDispatch>		spScript;
    	DISPID dispid = NULL;
    	EXCEPINFO excepInfo;
    	CComVariant vaResult;
    	UINT nArgErr = (UINT)-1;  // initialize to invalid arg
    	DISPPARAMS dispparams;
    
    	memset(&dispparams, 0, sizeof dispparams);//RAZ du tableau éventuel de paramètre: ma fonction n'a aucun paramètre
    	memset(&excepInfo, 0, sizeof excepInfo);
    
    	m_spHtmlDoc->get_Script(&spScript); // m_spHtmlDoc pointe sur la page HTML (script) associé à la fenêtre
    	CComBSTR bstrMember(ASCIIfonction);
    	spScript->GetIDsOfNames(IID_NULL,&bstrMember,1, LOCALE_SYSTEM_DEFAULT,&dispid);
    	spScript->Invoke(dispid,IID_NULL,0,DISPATCH_METHOD,&dispparams,&vaResult,&excepInfo,&nArgErr);
    }


    Delphine GARRO

    • Marqué comme réponse GARRO Delphine mercredi 24 octobre 2012 09:26
    mercredi 24 octobre 2012 09:13

Toutes les réponses

  • Voici une petite solution trouvée, qui marche parce que la fonction appelée GereBoutonRESERVATION() ne fait appel à aucun argument. La classe associé à ma fenêtre de dialogue MFC classique s'appelle ici CMaClassseHTMLDlg .

    void CMaClassseHTMLDlg::OnBnClickedExecutejavafunction()
    {
      ExecuteUneFonctionJAVA( _T( "GereBoutonRESERVATION") );
    }
    void CMaClassseHTMLDlg:: ExecuteUneFonctionJAVA( BSTR ASCIIfonction )
    {
    	CComPtr<IDispatch>		spScript;
    	DISPID dispid = NULL;
    	EXCEPINFO excepInfo;
    	CComVariant vaResult;
    	UINT nArgErr = (UINT)-1;  // initialize to invalid arg
    	DISPPARAMS dispparams;
    
    	memset(&dispparams, 0, sizeof dispparams);//RAZ du tableau éventuel de paramètre: ma fonction n'a aucun paramètre
    	memset(&excepInfo, 0, sizeof excepInfo);
    
    	m_spHtmlDoc->get_Script(&spScript); // m_spHtmlDoc pointe sur la page HTML (script) associé à la fenêtre
    	CComBSTR bstrMember(ASCIIfonction);
    	spScript->GetIDsOfNames(IID_NULL,&bstrMember,1, LOCALE_SYSTEM_DEFAULT,&dispid);
    	spScript->Invoke(dispid,IID_NULL,0,DISPATCH_METHOD,&dispparams,&vaResult,&excepInfo,&nArgErr);
    }


    Delphine GARRO

    • Marqué comme réponse GARRO Delphine mercredi 24 octobre 2012 09:26
    mercredi 24 octobre 2012 09:13
  • Merci pour avoir partager cette solution.

    Une petite remarque, Java et Javascript sont aussi proche qu'une carpe et un lapin, donc

    ExecuteUneFonctionJAVA c'est différent de ExecuteUneFonctionJavaScript ;-))


    Paul Bacelar, Ex - MVP VC++

    mardi 11 décembre 2012 16:42
    Modérateur