reactos作業系統實現 167

2021-05-17 12:04:18 字數 1936 閱讀 4308

co_userredrawwindow函式是用來實現視窗重畫的功能,實現**如下:

#001  bool fastcall

#002  co_userredrawwindow(pwindow_object window, const rect* updaterect, hrgn updatergn,

#003                      ulong flags)

#004 

#018 

#019     /*

#020      * step 2.

#021      * transform the parameters updatergn and updaterect into

#022      * a region hrgn specified in screen coordinates.

#023      */

#024 

建立更新的區域。

#025     if (flags & (rdw_invalidate | rdw_validate))

#026    

否則更新整個視窗。

#035           else

#036              ntgdioffsetrgn(hrgn, window->wnd->clientrect.left, window->wnd->clientrect.top);

#037        }

#038        else if (updaterect != null)

#039       

#045        }

#046        else if ((flags & (rdw_invalidate | rdw_frame)) == (rdw_invalidate | rdw_frame) ||

#047                 (flags & (rdw_validate | rdw_noframe)) == (rdw_validate | rdw_noframe))

#048       

#052        else

#053       

#057     }

#058 

#059     /*

#060      * step 3.

#061      * adjust the window update region depending on hrgn and flags.

#062      */

#063 

根據指定的區域進行更新。

#064     if (flags & (rdw_invalidate | rdw_validate | rdw_internalpaint | rdw_nointernalpaint) &&

#065         hrgn != null)

#066    

#069 

#070     /*

#071      * step 4.

#072      * repaint and erase windows if needed.

#073      */

#074 

重新畫視窗。

#075     if (flags & (rdw_erasenow | rdw_updatenow))

#076    

#079 

#080     /*

#081      * step 5.

#082      * cleanup ;-)

#083      */

#084 

#085     if (hrgn != null)

#086    

#089 

#090     return true;

#091  }

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...