VC中多語選單的實現

2021-04-08 22:19:54 字數 2315 閱讀 7601

vc中多語選單的實現

---- 隨著internet的發展,軟體的國際化不可避免。一種軟體可能被很多國家的人使

用,如給您的軟體加上多種語言的選單,不但給使用者帶來很多方便,也為您的軟體的

推廣帶來很多便利。比如給您開發的中文軟體,加上乙個英語或日語選單,對母語為英

語和日語的朋友將會帶來很多便利。vc中實現多語選單非常容易,下面以英漢對照選單

為例說明多語選單實現的方法。

---- 一、建立工程專案檔案

---- 二、修改建立選單資源

---- id: id_menu_change caption 英語(&e)

popup "編輯(&e)"

begin

menuitem "撤消(&u)/tctrl+z", id_edit_undo

menuitem separator

menuitem "剪下(&t)/tctrl+x", id_edit_cut

menuitem "複製(&c)/tctrl+c", id_edit_copy

menuitem "貼上(&p)/tctrl+v", id_edit_paste

endpopup "檢視(&v)"

begin

menuitem "工具欄(&t)", id_view_*******

menuitem "狀態列(&s)", id_view_status_bar

menuitem "英語", id_menu_change

end---- 將上述內容複製到剪貼簿中,然後拷貝乙份到上述內容的下面,並作部分修改。

將idr_mainframe改為idr_mainframe_en,其他漢語譯成英語,並按英語選單的習慣修

改。改後的選單資源如下:

popup "(&e)dit"

begin

menuitem "&undo/tctrl+z", id_edit_undo

menuitem separator

menuitem "cu&t/tctrl+x", id_edit_cut

menuitem "©/tctrl+c", id_edit_copy

menuitem "&paste/tctrl+v", id_edit_paste

endpopup "&view"

begin

menuitem "&tool bar", id_view_*******

menuitem "&status bar", id_view_status_bar

menuitem "&chinese", id_menu_change

endpopup "&help"

end---- 儲存修改後的資源檔案。把資源檔案重新調入資源編輯器,可發現已有兩套選單

資源。如有什麼不合適的地方可在資源編輯器中做進一步修改。

---- 三、加入選單變數到程式中

public:

cmenu m_penglish;//用於儲存英語選單資源

cmenu m_pchinese;//用於儲存漢語選單資源

enumm_emenu;//標示現在使用的是英語

選單還是漢語選單,c--漢語,e--英語

---- 四、初始化變數 需要初始化的變數僅有乙個m_emenu。由於開始時選單使用預設

中文選單,所以在cmainframe建構函式中初始化:

cmainframe::cmainframe()

---- 五、調入儲存選單資源

---- 在主視窗的oncreate函式中,初始化並儲存選單資源:

int cmainframe::oncreate(lpcreatestruct lpcreatestruct)

---- 六、響應改變選單命令

---- 利用classwizard為cmainframe類加入id_menu_change選單命令響應函式:

void cmainframe::onmenuchange()

else if(m_menu==c) file://如果現在選單為漢語

}---- 七、銷毀選單

---- 在cmainframe的析夠函式中銷毀選單:

cmainframe::~cmainframe()

---- 編譯執行程式您就可以獲得乙個具有英漢對照選單的應用程式。

---- 八、結束語

---- 上述例子雖然只給除了兩種語言的選單,但很容易編出多語言選單的應用程式。

由於各種語言選單實際上是不同的選單資源,所以,在同一應用程式中,可以使用不同

的選單。如共享軟體中註冊的使用者使用一種選單,未註冊的使用者使用另一種選單,而不

必發行多個版本和多次安裝,從而使註冊變得容易並能得到軟體更多的功能。

VC實現動態選單的建立方法

本文簡述了在程式不支援mfc,cmenu不可用的情況下,動態建立系統托盤選單的方法。由於選單項是不確定的,因而就需要用 sdk 建立乙個動態彈出選單。主要實現 如下 code begin 在類中定義的變數 雙擊托盤圖示時對應的選單項 id.uint m ndclickmenuitemid 彈出選單控...

用VC 實現軟體的多語種支援

前言 只用一套源 就可以方便地支援多種文字和多個地域,那麼這個軟體就可以方便地被翻譯成本地版本,這個過程叫做地域化 localization 怎樣才能不修改任何源 就使之能動態地轉換到不同的地域資源上呢?那就是使用windows的程式特性之一 資源。把在軟體中用到的可見資源維繫在乙個資源dll dy...

用VC 實現軟體的多語種支援

前言 只用一套源 就可以方便地支援多種文字和多個地域,那麼這個軟體就可以方便地被翻譯成本地版本,這個過程叫做地域化 localization 怎樣才能不修改任何源 就使之能動態地轉換到不同的地域資源上呢?那就是使用windows的程式特性之一 資源。把在軟體中用到的可見資源維繫在乙個資源dll dy...