reactos作業系統實現 193

2021-08-25 01:22:47 字數 1259 閱讀 7498

selectobject函式是將物件選定到指定的裝置場境中。具體實現**如下:

#001 hgdiobj

#002 winapi

#003 selectobject(hdc hdc,

#004 hgdiobj hgdiobj)

#005

#016

獲取選擇dc的物件正確的控制代碼。

#017 hgdiobj = gdifixuphandle(hgdiobj);

#018 if (!gdiishandlevalid(hgdiobj))

#019

#022

獲取這個物件的型別。

#023 utype = gdi_handle_get_type(hgdiobj);

#024

根據不同的型別呼叫合適的函式把物件設定到dc裡。

#025 switch (utype)

#026

#073 #endif

#074 // default for select object font

#075 return ntgdiselectfont(hdc, hgdiobj);

#076

#077 #if 0

#078 case gdi_object_type_metadc:

#079 return mfdrv_selectobject( hdc, hgdiobj);

#080 case gdi_object_type_emf:

#081 pldc pldc = gdigetldc(hdc);

#082 if ( !pldc ) return null;

#083 return emfdrv_selectobject( hdc, hgdiobj);

#084 #endif

#085 case gdi_object_type_colorspace:

#086 setcolorspace(hdc, (hcolorspace) hgdiobj);

#087 return null;

#088

#089 case gdi_object_type_palette:

#090 default:

#091 setlasterror(error_invalid_function);

#092 return null;

#093 }

#094

#095 return null;

#096 }

#097

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