IEHelper開發手記 8月7日

2021-04-01 10:25:42 字數 2310 閱讀 1446

2023年8

月7

日凌晨晚上想到實現橫向滾動是否可以通過右鍵

+滾輪來實現,首先是想通過

onscroll

事件的監控,但是怎麼都沒法監控到

onscroll

事件,後來發現需要鏈結到

htmlwindowevents2

事件中,監控

htmlwindowevents2

中的onscroll

事件,沒辦法,在

dodocument***plete

中加入了鏈結到

htmlwindowevents2

中的**。

但是這樣有乙個問題,首先是這個

onscroll

事件是在滾動之後才發生的!其次是沒法在事件發生時知道是向上還是向下滾動!

後來決定監控

onmousewheel

事件,但是不知道這個事件的

id,只知道這個在

vc中的定義是

dispid_onmousewheel

,但是網上找不到這個常量的值是多少,發寶氣了,找了乙個

platform sdk

裝了一把,不錯,這個裡面有

dispid_onmousewheel

的常量定義:

#define dispid_normal_first1000

#define dispid_onmousewheel(dispid_normal_first + 33)

就是說onmousewheel

事件的id

是1033

,這樣就簡單了,根據

msdn

中對onmousewheel

的說明建立乙個

onmousewheel

事件的處理函式:

procedure docmousewheel(const pevtobj: ihtmleventobj);

現在還有乙個問題,在

pevtobj

中沒法知道滾輪是向上還是向下,又在

msdn

中看了一下,得知

onmousewheel

事件的引數

pevtobj

實現了ihtmleventobj4

介面,而這個介面的

wheeldelta

可以得知滾動的方向和距離。

但是問題又來了,

mshtml.pas

中沒有ihtmleventobj4

介面的定義,沒辦法,從

platform sdk

中提供的

mshtml.idl

編譯成mshtml.tlb

,然後引入吧。但是

mshtml.idl

怎麼都沒法編譯,找到網上各種辦法都不行,後來開啟

vb開了一下系統中的

mshtml.tlb

,nnd

,居然包含

ihtmleventobj4

介面定義,沒說的,引入這個

tlb吧,又有問題了,不知道怎麼的,引入生成的

mshtml_tlb.pas

怎麼都沒辦法在工程中編譯,只好將

ihtmleventobj4

以及ihtmleventobj4disp

介面的定義拷貝到

mshtml.pas

中間,然後編寫

onmousewheel

方法:procedure tmyiehelper.docmousewheel(const pevtobj: ihtmleventobj);

varmousedata : ihtmleventobj4;

begin

if(pevtobj.button = 2) then

begin

pevtobj.queryinte***ce(ihtmleventobj4, mousedata);

if(assigned(mousedata)) then

begin

beginrscroll := true;

if(mousedata.wheeldelta > 0) then

(ie.document as ihtmldocument2).parentwindow.scrollby(-20, 0)

else

(ie.document as ihtmldocument2).parentwindow.scrollby(20, 0);

end;

pevtobj.returnvalue := false;

pevtobj.cancelbubble := true;

end;

end;

成功!!

rails 開發隨手記 7

jquery 1.9 中如何修改選擇項 select option contains teacher5 prop selected selected 效果 將包含了teacher5的選項選中。prop和attr的區別在於前者是特性,是對應dom元素做具有的,後者是屬性,是寫在html中的。在早些版本...

8月7日小結

新的一周開始,開始複習圖論的知識,上學期學習的時候,圖論知識學的很淺,做起來比較吃力,做的題目除了最小生成樹,就是求最短路徑,對dijkstra的演算法運用還不熟練,做dijkstra的變形題,思路比較亂,還需要好好理解floyed和dijkstra演算法,需要多看看大神的 多熟悉dijkstra演...

咖啡日誌 7月1 7月8號

經過上週的工作學習,近日來感覺對一些基礎知識還需要鞏固一下,故此羅列下表 為下週的工作計畫 1,xhtml需要仔細的閱讀並掌握之.2,ant程式構建工具需要再次閱讀並理解,以實際應用為準.3,junit單元測試框架需要再次閱讀,並理解應用其核心設計模式,以實際應用為主 4,閱讀重構 改善現有 設計 ...