2015-04-01 49 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