谷歌瀏覽器的原始碼分析 7

2021-09-30 16:36:18 字數 921 閱讀 7074

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!

當我們鍵入字母或者文字開始時,那麼類autocompleteedit就會從視窗訊息裡獲取到相應的字母或者文字,然後根據輸入的資訊到本地或者網路上儲存的資訊庫裡查詢相應的輸入提示,這就是自動完成的實現。下面就來先分析輸入的函式:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

#001  void autocompleteedit::onchar(tchar ch, uint repeat_count, uint flags)

#018 

這裡處理其它有用的按鍵訊息。

#019    handlekeystroke(getcurrentmessage()->message, ch, repeat_count, flags);

#020  }

autocompleteedit::onchar函式是wtl裡的wm_char訊息處理,當使用者鍵入字母時就會觸發這個訊息。這個函式先跳過幾個不要處理的訊息,最後呼叫函式handlekeystroke來處理,如下:

#001  void autocompleteedit::handlekeystroke(uint message, tchar key,

#002                                         uint repeat_count, uint flags)

在這裡為什麼要進行視窗的訊息凍結呢?又為什麼需要進行訊息處理和訊息變化後處理呢?下一次再告訴你。

給我老師的人工智慧教程打call!

谷歌瀏覽器的原始碼分析 8

上一次說到處理wm char訊息,當使用者每鍵入乙個字元時,萬能連線框就會去進行一次查詢的過程,然後把智慧型提示資訊顯示出來。說到autocompleteedit handlekeystroke函式的操作,那麼它為什麼需要凍結這個函式的使用呢?現在就來分析這部份的內容。如下 scopedfreeze...

谷歌瀏覽器的原始碼分析 30

上次說到函式winhttpreaddata 通過上面的函式可以看到,當資料接收完成後,就會呼叫docallback函式處理接收到的資料。docallback函式的 如下 看到這裡又是乙個 函式c run的通知,它是呼叫開始建立這個連線時設定的 物件。如果是http請求,那麼這個請求 函式是物件url...

谷歌瀏覽器的原始碼分析 32

上一次說到在類resourcedispatcher會收到接收http資料訊息,並進一步處理資料。那麼resourcedispatcher類又把接收到的資料發往何處呢?這是需要我們去搞懂它的。通過進一步的跟蹤,會發現在resourcedispatcher onreceiveddata函式呼叫webco...