reactos作業系統實現 55

2021-05-01 19:26:19 字數 2372 閱讀 8111

在語言選擇裡,倒底做了什麼樣的事情,讓ros系統可以選擇不同的語言?ros系統又是怎麼樣實現不同的語言支援的呢?

#001  static page_number

#002  languagepage(pinput_record ir)

#003 

#014      }

#015 

在螢幕上顯示語言列表。

#016      drawgenericlist(languagelist,

#017                      2,

#018                      18,

#019                      xscreen - 3,

#020                      yscreen - 3);

#021 

滾動選擇的語言上。

#022      scrolltopositiongenericlist (languagelist, getdefaultlanguageindex());

#023 

#024      muidisplaypage(language_page);

#025 

迴圈處理,直到使用者選擇了安裝的語言。

#026      while(true)

#027     

使用向上方向鍵選擇語言。

#042          else if ((ir->event.keyevent.uchar.asciichar == 0x00) &&

#043                   (ir->event.keyevent.wvirtualkeycode == vk_up))  /* up */

#044         

#054          if ((ir->event.keyevent.uchar.asciichar == 0x00) &&

#055              (ir->event.keyevent.wvirtualkeycode == vk_next))  /* page down */

#056         

#059          else if ((ir->event.keyevent.uchar.asciichar == 0x00) &&

#060                   (ir->event.keyevent.wvirtualkeycode == vk_prior))  /* page up */

#061         

如果使用者按f3退出安裝程式。

#064          else if ((ir->event.keyevent.uchar.asciichar == 0x00) &&

#065                   (ir->event.keyevent.wvirtualkeycode == vk_f3))  /* f3 */

#066         

如果使用者按回車鍵,就選擇相應的語言,並且進入下乙個頁面。

#070          else if (ir->event.keyevent.uchar.asciichar == 0x0d)  /* enter */

#071         

#078 

#079              // load the font

#080              setconsolecodepage();

#081 

這裡進入下乙個介紹頁面。

#082              return intro_page;

#083          }

#084          else if ((ir->event.keyevent.uchar.asciichar > 0x60) && (ir->event.keyevent.uchar.asciichar < 0x7b))

#085         

#089      }

#090 

#091      return intro_page;

#092  }

通過上面的函式處理,就可以選不同的語言。在函式裡呼叫setconsolecodepage函式來設定**頁,也就是通過**頁來實現不同的語言來顯示。也就是通過下面的**來實現:

#001  bool winapi

#002  setconsoleoutputcp(

#003       in uint wcodepage)

#004 

**頁的作用,就是設定不同國家的編碼方式。比如同乙個16進製制的碼8022,在不同國家裡,它是表示不同的語言文字。因此選擇**頁,就相當於選擇不同國家的語言排列方式。

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