reactos作業系統實現 193

2021-05-21 19:10:16 字數 1504 閱讀 9833

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作業系統實現 55

在語言選擇裡,倒底做了什麼樣的事情,讓ros系統可以選擇不同的語言?ros系統又是怎麼樣實現不同的語言支援的呢?001 static page number 002 languagepage pinput record ir 003 014 015 在螢幕上顯示語言列表。016 drawgeneri...