0

InstallShieldの使用-InstallScriptプロジェクト:

ファイルを参照するためのカスタムダイアログを作成しました。

ダイアログの初期化で、[次へ]ボタンを無効にします。

インストールウィザードのボタン([キャンセル]、[次へ]、[戻る])を除いて、このダイアログの他のボタンを無効にすることに成功しました。

関数_WinSubEnableControlまたはEnableWindowを使用しました。

4

2 に答える 2

3

わたしにはできる:

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

これが役に立たなかった場合は、コードを公開してください。

于 2011-09-05T05:05:16.313 に答える
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);
于 2011-09-05T06:49:30.757 に答える