2011-09-01 186 views
0

使用InstallShield - InstallScript項目:禁用「下一步」按鈕在InstallScript中

我做了一個自定義對話框來瀏覽文件。

在對話框初始化我想禁用「下一步」按鈕。

我成功地禁用了此對話框中除安裝嚮導的任何按鈕之外的其他按鈕:取消,下一步和返回。

我使用了函數_WinSubEnableControl或EnableWindow。

回答

1

禁用按鈕的代碼應該在調用SdGeneralInit之後。 如果你把它放在前面(就像我做的那樣),改變就不會發生。

對SdGeneralInit的調用會明確啓用「下一步」按鈕,這就是爲什麼它不適用於「下一步」按鈕,但對對話框上的其他自定義按鈕有效。

它看起來應該是這樣的:

case DLG_INIT:  

    SdGeneralInit(szDlg, hwndDlg, 0, szSdProduct); 

    hDlgHandle = CmdGetHwndDlg(szDlg);   
    hNextButton = GetDlgItem(hDlgHandle, 1); // 1 is the id for the next button.    
    EnableWindow(hNextButton, FALSE); 
2

它爲我的作品:

function 
    HWND hwndDlg, hwndNext; 
    ... 
    begin 
    ... 
    hwndDlg = CmdGetHwndDlg(strDialogName); 
    hwndCtrl = GetDlgItem(hwndDlg, NEXT); 
    EnableWindow(hwndCtrl, FALSE); 
    ... 
    end; 

如果你沒有發現這個有用,請發表你的代碼。

+0

感謝,按照您的建議,我開始爲在這裏發帖,並同時美化它編寫的代碼,它打動了我,也許我應該以後把禁用節中的代碼 - 所以我把它放在SdGeneralInit的調用之後,它就起作用了。 :)我很開心。再次感謝。 – kroiz

相關問題