CDHtmlDialog如何捕获title Change事件
CHtmlView用OnTitleChange实现标题栏改变,而CDHtmlDialog应如何捕获这一事件呢
[解决办法]
是不是就是捕获改变对话框标题的消息?
[解决办法]
那应该是响应WM_SETTEXT这个消息吧。
[解决办法]
能不能这样呢?
改变标题的时候,向窗口发个消息,告诉窗口标题已经改变了
[解决办法]
API HOOK,HOOK掉SetWindowText
[解决办法]
CHtmlView::OnTitleChange 实际也就是处理 DWebBrowserEvents2::TitleChange 事件
CDHtmlDialog 派生自 CDialog 和 CDHtmlEventSink
CDHtmlEventSink就是干这个事情的,你直接给dhtmldialg加一个eventsink就可以了
BEGIN_EVENTSINK_MAP(CXXXXDlg, CDHtmlDialog)
ON_EVENT(CXXXXDlg, AFX_IDC_BROWSER, DISPID_TITLECHANGE, CXXXXDlg::OnTitleChange, VTS_DISPATCH VTS_PVARIANT)
END_EVENTSINK_MAP()
ps, in EXDISPID_H_
#define DISPID_TITLECHANGE 113