2015-04-01 71 views
0

我在安裝程序中使用MUI_LANGDLL_DISPLAY,我需要語言選擇對話框出現在頂部,所以它不能被其他窗口隱藏。我已經做安裝在頂部,使用:NSIS語言選擇對話框頂部

System::Call "user32::SetWindowPos(i $HWNDPARENT, i ${HWND_TOPMOST}, i0, i0, i0, i0, i ${SWP_NOSIZE}|${SWP_NOMOVE})" 

我看着LangDLL.c和對話似乎與創造:

DialogBox(g_hInstance, MAKEINTRESOURCE(IDD_DIALOG), 0, DialogProc); 

但我不知道該怎麼繼續。

我可以使用不同的HWND進行系統調用,使語言選擇對話框位於頂部嗎?

+0

爲什麼你覺得這是必要的?強迫窗戶始終位於最頂端的是煩人的恕我直言。 – Anders 2015-04-01 22:14:20

+0

這不是我,這是我的顧客想要的。安裝程序已經不得不處於頂峯,所以他希望語言選擇也處於頂峯。 – 2015-04-02 09:29:29

回答

0

DialogBox創建一個模式對話框,所以沒有簡單的方法使用系統插件與它進行交互。

您可以嘗試使用Resource Hacker編輯LangDll.dll並添加WS_EX_TOPMOST擴展樣式。如果這樣做不起作用,那麼你將不得不重新編譯LangDll並在WM_INITDIALOG中加入SetWindowPos的呼叫...

+0

謝謝!我會盡力讓你知道它是否有效。 – 2015-04-02 09:30:48

+0

我嘗試添加WS_EX_TOPMOST,但每次嘗試編譯腳本時都會將其刪除。我會嘗試重新編譯LangDll ... – 2015-04-13 17:07:44