在我的VC++應用程序中,我有一個嵌入式瀏覽器(MSHTML)。它工作正常,並正確處理鼠標(例如,點擊和選擇處理確定)。但是,嵌入式瀏覽器上的鼠標滾輪旋轉不起作用。這是我的問題。嵌入式MSHTML:忽略鼠標滾輪
我不是很熟悉MSHTML嵌入的內部和OLE的一般內容。這是一個wxWidgets應用程序(wxWidgets是一個C++ GUI庫),我正在使用它的IEHTMLWin組件(託管一個MSHTML控件並將它包裝在wxWindow接口中)。但是,我確實有源並且願意進行一些調試。
忘記wxWidgets並純粹講述OLE和MSHTML,開始尋找問題原因的正確位置是什麼?我嘗試了天真的谷歌搜索「mshtml鼠標事件」或「mshtml輪」的變種,但沒有給出任何好的指針。
如果您想查看IEHTMLWin的代碼,可以瀏覽here。 iehtmlwin.c文件(1,5 k行)包含所有與OLE相關的代碼,並實現承載Web瀏覽器控件所需的所有接口。值得注意的是,鼠標事件根本不會進入包含wxWindow(OnMouse永遠不會被調用)。
{UPD} mshtml版本:6.00.2900.3314。承載此控件的其他應用程序(包括IE)支持滾輪。 {/ UPD}
jdigital提示(關於winspector)是非常有幫助的。在嗅探一些消息後,我意識到問題與焦點相關。點擊瀏覽器控件不會將焦點放在瀏覽器控件上(不像RichEdit),WM_MOUSEWHEEL也不會發送到那裏。所以新問題就是重點。
這是一個WAG(所以沒有答案)...你託管什麼版本的瀏覽器?是否有可能鏈接到IE的預滾輪版本? – Will 2008-11-17 20:09:05
mshtml版本:6.00.2900.3314(xpsp_sp2_qfe.080215-1242) 承載此控件(包括IE)的其他應用程序支持滾輪。 – user38329 2008-11-17 20:32:14