读书人

CDHtmlDialog怎么捕获title Change事件

发布时间: 2012-02-16 21:30:36 作者: rapoo

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

读书人网 >VC/MFC

热点推荐