?
經(jīng)查資料得如下信息:
1)操作系統(tǒng)通過RIT(raw input thread,RIT)等待系統(tǒng)硬件輸入隊列(system hardware input queue,SHIQ)的消息,一旦鼠標(biāo)或鍵盤發(fā)生操作,系統(tǒng)就向SHIQ添加一條硬件事件,這時RIT將被喚醒,并從SHIQ中取出這個事件,轉(zhuǎn)換成適當(dāng)?shù)腤M_KEY***、WM_?BUTTON***、WM_MOUSEMOVE等消息添加到適當(dāng)線程消息隊列(VIQ)中,RIT判斷適當(dāng)線程的機(jī)制:
??1.對于鼠標(biāo)消息,RIT只是確定是哪一個窗口在鼠標(biāo)光標(biāo)之下。利用這個窗口,RIT調(diào)用GetWindowThreadProcessID來確定是哪一個線程建立了這個窗口,那么就把消息發(fā)送到這個線程的線程消息隊列(VIQ)中。
??2.對于按鍵消息,在 任何時刻只有一個線程與RIT“連接”,與之相連的這個線程稱為前景線程(foreground thread),也就是說RIT將把消息發(fā)送到建立當(dāng)前獲得焦點的窗口的線程的線程的線程消息隊列(VIQ)中。