CHtmlView加载Html字符串,模拟点击 IHTMLElement click 错误的有关问题2

CHtmlView加载Html字符串,模拟点击 IHTMLElement click 异常的问题2
之前发错板块了。。
问题地址是

http://topic.csdn.net/u/20110602/16/d079b06c-8d65-4598-bb4b-88648075d995.html?seed=891617702&r=73667674#r_73667674

------最佳解决方案--------------------
pElem->click();//异常
----------
你是在什么地方调用的这个函数?

需要在界面线程中,CHtmlView 重载 OnDocumentComplete 中调用。
------其他解决方案--------------------

http://topic.csdn.net/u/20110602/16/d079b06c-8d65-4598-bb4b-88648075d995.html?seed=891617702&r=73667674#r_73667674

------其他解决方案--------------------
公共全局对象
CXHtmlView g_htmlView;

我在一个自定义工作线程中调用,那个线程是用wininet抓去页面的
抓到页面放入CString strHtml;

g_htmlView.Load(strHtml);
g_htmlView.ClickButton(_T("se"));//根据name="se",点击radio按钮

CXHtmlView继承CHtmlView


class CXHtmlView : public CHtmlView
{
public:
CXHtmlView(void);
~CXHtmlView(void);
public:
void Init();
afx_msg void OnDestroy();
virtual void OnDocumentComplete(LPCTSTR lpszURL);
DECLARE_MESSAGE_MAP()
protected:
virtual void PostNcDestroy();
public:
void OnInitialUpdate();
HANDLE m_docComplete; //页面加载完毕事件
public:
CStdioFile m_viewFile;
CString m_viewPath;
void SaveHtmlString(CString strHtml);
public:
void Load(CString strHtml);
void ClickButton(CString elementId);

};



#include "StdAfx.h"
#include "XHtmlView.h"
#include "Public.h"

CXHtmlView::CXHtmlView(void)
{
m_docComplete = ::CreateEvent(0,FALSE,FALSE,0);
}

CXHtmlView::~CXHtmlView(void)
{
CloseHandle(m_docComplete);
this->DestroyWindow();
}

void CXHtmlView::Init()
{
CWnd* pParent = AfxGetApp()->GetMainWnd();
Create(NULL,                     // 类名
NULL,                     // 标题
(WS_CHILD 
------其他解决方案--------------------
 WS_VISIBLE ),  // 风格
CRect(0,0,0,0),  // 矩形区域
pParent,           // /父窗口
NULL,   // 控制 ID
NULL);           ///框架/文档
OnInitialUpdate();
}

BEGIN_MESSAGE_MAP(CXHtmlView, CHtmlView)
ON_WM_DESTROY()
END_MESSAGE_MAP()

void CXHtmlView::OnDestroy()
{
CHtmlView::OnDestroy();

// TODO: 在此处添加消息处理程序代码
}
//通常,CHtmlView是在virtual   void   PostNcDestroy()中释放空间,但对话框或者控件中的控制常常是作为堆栈对象实现的,所以,在PostNcDestroy()中不必在做什么。 
void CXHtmlView::PostNcDestroy()
{
// TODO: 在此添加专用代码和/或调用基类

//CHtmlView::PostNcDestroy();
}
//页面加载完毕
void CXHtmlView::OnDocumentComplete(LPCTSTR lpszURL)
{
// TODO: 在此添加专用代码和/或调用基类

SetEvent(m_docComplete);

//CHtmlView::OnDocumentComplete(lpszURL);
}

void CXHtmlView::OnInitialUpdate()
{
this->Navigate2(_T("about:blank"));
}

void CXHtmlView::Load(CString strHtml)
{