Visual c++ EventSinkMap不捕获来自CWebBrowser2的消息

Visual c++ EventSinkMap不捕获来自CWebBrowser2的消息,visual-c++,mfc,iwebbrowser2,Visual C++,Mfc,Iwebbrowser2,我正在尝试捕获从CWebBrowser2对象发送的消息 m_WebBrowser.Create(_T(""), _T(""), WS_VISIBLE, rect, this, 1, NULL); m_WebBrowser.Navigate(_T("www.test.com"), NULL, NULL, NULL, NULL); m_WebBrowser.SetDlgCtrlID(1000); 我的EVENTSINK\u地图如下所示: BEGIN_EVENTSINK_MAP(CWebBrow

我正在尝试捕获从CWebBrowser2对象发送的消息

m_WebBrowser.Create(_T(""), _T(""), WS_VISIBLE, rect, this, 1, NULL);

m_WebBrowser.Navigate(_T("www.test.com"), NULL, NULL, NULL, NULL);

m_WebBrowser.SetDlgCtrlID(1000);
我的EVENTSINK\u地图如下所示:

BEGIN_EVENTSINK_MAP(CWebBrowserDlg, CDialog)
ON_EVENT(CWebBrowserDlg, 1000, DISPID_COMMANDSTATECHANGE,
    CWebBrowserDlg::Test, VTS_NONE)
END_EVENTSINK_MAP()
以及必须调用的函数 :


但是,当浏览器导航到用户单击的页面时,我永远无法输入Test()

找到了。它是一些对话框的源代码。在页面上找到SetDlgCtrlID(),您将看到程序员对狡猾的SetDlgCtrlID()的评论。我没有关于MFC功能的任何正式MSDN参考。请您发表意见。如果我成功捕获这些事件,我将发布此问题的解决方案作为答案。
    void CWebBrowserDlg::Test(long Command, BOOL Enable)
{
    int j = 0; // so i can get a breakpoint 
}