reactos作業系統實現 168

2021-05-17 12:58:44 字數 940 閱讀 7373

當應用程式更新視窗後,就需要不斷地接收系統發過來的訊息,然後處理訊息,最後傳送訊息出去,這樣就構成了應用程式的訊息迴圈處理。不斷地獲取系統訊息的函式是getmessage函式,下面就是它的實現**:

#001  bool winapi

#002  getmessagew(lpmsg lpmsg,

#003           hwnd hwnd,

#004           uint wmsgfiltermin,

#005           uint wmsgfiltermax)

#006 

#018    conversion.lparamsize = info.lparamsize;

#019    conversion.kmmsg = info.msg;

#020 

把核心的訊息方式轉換使用者的訊息方式。

#021    if (! msgikmtoummessage(&conversion.kmmsg, &conversion.unicodemsg))

#022     

#025    if (!lpmsg)

#026   

新增訊息到轉換佇列。

#030    *lpmsg = conversion.unicodemsg;

#031    conversion.ansi = false;

#032    conversion.finalmsg = lpmsg;

#033    msgconversionadd(&conversion);

#034    if (res && lpmsg->message != wm_paint && lpmsg->message != wm_quit)

#035     

#038 

#039    return res;

#040  }

reactos作業系統實現 178

sendmessagew函式主要用來向視窗傳送訊息。下面就是它的實現 001 lresult winapi 002 sendmessagew hwnd wnd,003 uint msg,004 wparam wparam,005 lparam lparam 006 028 029 填寫訊息結構。03...

reactos作業系統實現 187

隨著全球化的發展,開發軟體都是面向多語言的環境。目前大多數程式都是採用不同字型來顯示不同語言的辦法,那麼有沒有一種更好的辦法,一種字型就可以解決全球語言的顯示呢?答案肯定的,它就是採用邏輯字型ms shell dlg和ms shell dlg2。比如開發應用程式時,就看到在資源裡可以設定ms she...

reactos作業系統實現 193

selectobject函式是將物件選定到指定的裝置場境中。具體實現 如下 001 hgdiobj 002 winapi 003 selectobject hdc hdc,004 hgdiobj hgdiobj 005 016 獲取選擇dc的物件正確的控制代碼。017 hgdiobj gdifixu...