Re: [問題] 多語系程式的問題

看板C_and_CPP (C/C++)作者 (史不拉雞五)時間16年前 (2010/02/03 19:27), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《Splash5 (史不拉雞五)》之銘言: : 這邊應該可以問win32程式吧XD.. : 最近在修改一個日本人開發的軟體 我已將它unicode化了 : 但其中有個部份是 使用者按下某個按鈕後 會開出SaveDialog : 然後程式這邊會靠FindWindow去找出這個SaveDialog的handle : postmessage讓這個dialog上的按鈕會自己按下去 : 原本的程式是這樣寫的 : FindWindow(NULL, _T("名前を付けて保存")) : 其中"名前を付けて保存"就是日文的另存新檔 : 這樣子 在日文的os下運作很正常 : 但是到了中文os下 上面的FindWindow就會找不到視窗 : 因為SaveDialog的text已經變成中文的"另存新檔"了 : 當然我可以在程式裡寫死 但是只要再增加一個新的語言 又要再改一次 : 不曉得有沒有什麼好的方法能夠解決這個問題 : 看起來"另存新檔" 跟 "名前を付けて保存" 都是系統內部設定的文字 : 如果有方法可以拿到這些文字.. 那就沒問題了@@.. 剛剛解決(?)這個問題了.. 因為savedialog是用comdlg32.dll來創造的 所以把comdlg32.dll打開 看resource string table找"另存新檔"的id 然後 LoadString((HINSTANCE)GetModuleHandle(_T("comdlg32.dll")), 385, buf, 1024); 385就是"另存新檔"的resource id 就能拿到這個字串了 現在要確認其它語言的comdlg32.dll resource id=385是不是也是"另存新檔"的意思 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 112.104.65.120
文章代碼(AID): #1BQLsKsi (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1BQLsKsi (C_and_CPP)