今天終於解決(?)這個問題了
因為save dialog是依據comdlg32.dll來創造的,所以在comdlg32.dll中
就含有dialog對應的string resource
用visual studio開啟comdlg32.dll (個人是使用XP SP3)
可以看到resource id=385 就是我們要的 "另存新檔"
根據這個結果,寫了下面的程式:
LoadString((HINSTANCE)GetModuelHandle(_T("comdlg32.dll")), 385, buf, 1024);
這樣buf的內容就會是"另存新檔" 再丟給FindWindow就能找到我們要的dialog的handle
FindWindow(MAKEINTATOM(32775), buf) 這樣子就能找出SaveDialog的handle
vista下LoadString也能得到"另存新檔"字串
windows7下應該也沒有問題 而且在windows7下打開comdlg32.dll可以看到其它語系的string table
其它語系的"另存新檔" id也同樣是385
所以這個方法應該沒有問題吧... XD
現在要測試在64bits的os是否也能得到相同結果
>> 64bits OS OK!!
2010年2月3日 星期三
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言