Windows 기본 C++/Win32/MFC 대화 앱이 있습니다. 대화 상자에서 IE ActiveX 컨트롤을 사용하여 일부 HTML 내용을 렌더링하고 있습니다. 렌더링되는 HTML에는 버튼이 있습니다. 버튼에는 아래와 같이 onClick 자바 스크립트 핸들러가 있습니다.C++ 코드에서 HTML 버튼 클릭 이벤트 처리
<input type="button" id="uniqueButtonID" name="uniqueButtonName" value="blue" onClick="OnButtonClick('blue');">
현재 버튼 클릭은 표시된 javascript 핸들러에 의해 페이지에서 처리됩니다. 이것은 모두 작동합니다.
대신 대화 상자 C++ 코드에서 버튼 클릭을 처리하고 싶습니다.
대화 상자에서 다른 이벤트를 처리하는 데 경험이 있습니다. 예를 들어, 아래에서 작동하고 doc complete 이벤트 및 탐색을 처리 할 수 있습니다.
BEGIN_EVENTSINK_MAP(DMyDlg, CDialog)
ON_EVENT(DMyDlg, IDC_EXPLORER2, 259, DMyDlg::DocumentCompleteExplorer2, VTS_DISPATCH VTS_PVARIANT)
ON_EVENT(DMyDlg, IDC_EXPLORER2, 250, DMyDlg::BeforeNavigate2, VTS_DISPATCH VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PBOOL)
END_EVENTSINK_MAP()
미리 정의 된 잘 알려진 이벤트입니다. onClick = ""섹션의 버튼에서 정의한 것을 처리하는 방법을 잘 모르겠습니다.
누구든지이 작업을 수행하는 방법을 알고 있습니까? 여기서 동기 부여는 일부 비즈니스 로직을 정의하는 다른 C++ 응용 프로그램에 사용되는 코드가 있다는 것입니다. 나는 여기에 사용 된 것과 동일한 비즈니스 로직을 원한다. 현재 나는 그것을 자바 스크립트로 매번 번역해야한다. C++ 코드에서 이벤트를 처리 할 수 있다면 복사/붙여 넣기 (또는 DLL을 통해 다시 사용)하고 자바 스크립트 번역 단계를 피할 수 있습니다.
감사! 나는 그것을 시도 할 것이다. – Nerdtron
나는 OLE/COM에 대해 많은 읽기를했지만 그 날을 잊어 버렸습니다. :) 이제는 두통이 생겨서 가장 간단한 방법을 통해 간단한 객체를 만들 수 있습니다. Javascript에서 메소드 호출 ... – Nerdtron
동의. 업데이트 된 답변보기 –