IWEBBROWSER2 und die Eingabetaste


  • Mod

    Nein. Der snifft nichts, sondern erbietet eine WM_KEYDOWN Nachricht dem ActiveX Control zur Behandlung an.

    Lies:
    http://msdn.microsoft.com/en-us/library/windows/desktop/ms693360(v=vs.85).aspx

    Wichtig ist, dass man bei Rückgabe von S_OK auch mit return TRUE aus PreTranslateMesaage rausgeht.

    Das ist hier nicht in em Code zu sehen!



  • Hmmm, das Pretranslate ist keine Unterfunktion des Webbrowser2 bei mir.
    Wozu gehört das?



  • Ok, hab nun den Maindialog über den Objectwizard das Pretranslate hinzugefügt.

    BOOL CMyDlg::PreTranslateMessage(MSG* pMsg)
    {
    	if(lastfrontdialog==CHAT_DIALOG)
    	{
    		if (pMsg->message == WM_KEYDOWN)
    		{
    			IOleInPlaceActiveObject* pIOIPAO = NULL;
    			LPDISPATCH lpDispatch = m_webbrowserchat.get_Application();
    			if(lpDispatch)
    			{
    				lpDispatch->QueryInterface(IID_IOleInPlaceActiveObject, (void**)&pIOIPAO);
    				lpDispatch->Release();
    				HRESULT hr = pIOIPAO->TranslateAccelerator(pMsg);              
    				if(pIOIPAO != NULL){pIOIPAO->Release();} 
    				if(hr==S_OK){return TRUE;}
    			}
    		}
    	}
    	return CDialog::PreTranslateMessage(pMsg);
    }
    

    Ist das dann so korrekt?
    hr ist immer FALSE 😞



  • FALSE == 0 == S_OK



  • Sorry, meinte S_FALSE.



  • Soso.
    Und das ist schlimm weil .... ?



  • Weil ich gerne meine return Taste im Webbrowser2 verwenden will.
    Alle anderen Tasten funktionieren.
    Nur wenn ich eine Java Chatprogramm Eingabezeile mit Return abschliesse dann gelangt der Return nicht ans Java wie es unter einem normalen IE Webbrowser der Fall ist.
    Dazu gibt es viele Google Threads die dieses Problem bestätigen, auch in HTML Edit Boxen aber keine Lösung.



  • Meinst Du wirklich Java oder Javascript?
    Bei HTML/CSS sollte es so wie oben beschrieben funktionieren.

    Wie das mit einem Java-Applet im Browser ausschaut kann ich Dir nicht sagen. Da hast Du noch die Java VM zwischen den Welten.

    Gruß
    foo


  • Mod

    Hast Du mal nachgesehen wer die Eingabetaste bearbeitet?

    Ist es der Dialoghandler?
    Wird PreTranslateMessage überhaupt angelaufen?



  • Es ist ein vorkompiliertes Java Programm mit .js Endung?
    k.a. wie man das bezeichnen kann, liegt jedenfalls auf meinem Apache Server und ist als Vollbild im iWebbrowser2 engebettet. Während ein iExplorer das Return als Eingabe erkennt und die Chatnachricht sendet ist im iWebbrowser2 keine Reaktion 😞

    Das CDialog Prestranslate funktioniert, ich kann es debuggen und wie schon geschrieben kommt leider nur ein S_FALSE zurück.
    Was ich nicht verstehe ist der Unterschied zwischen dem Browser und dem eingebetteten Browser.
    HTML und CSS hat schon vorher mit return funktioniert, da hab ich jetzt nochmal nachgecheckt gegen meine vorige Aussage.


Anmelden zum Antworten