當應用程式更新視窗後,就需要不斷地接收系統發過來的訊息,然後處理訊息,最後傳送訊息出去,這樣就構成了應用程式的訊息迴圈處理。不斷地獲取系統訊息的函式是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...