プロパティシートを使ったPSH_WIZARD97スタイルのWizardで[次へ]ボタンを無効化したい

解決


ココ  2009-07-16 15:11:28  No: 70616  IP: 192.*.*.*

お世話になります。VC2005+MFC8.0+WinXPで開発をしております。
プロパティシートを使ったPSH_WIZARD97スタイルのWizardで[次へ]ボタンを無効化したいのですが、IDOKを指定してEnableWindowすればいいのかとおもいきや、うまくいきませんでした、(IDCANCELでキャンセルボタンの無効化は可能でした)
どなたかご教授お願いいたします。

編集 削除
Blue  2009-07-16 15:20:43  No: 70617  IP: 192.*.*.*

次へのIDはID_WIZNEXTでは?

編集 削除
maru  2009-07-16 17:09:41  No: 70618  IP: 192.*.*.*

Wizardのボタンを制御するにはCPropertySheet::SetWizardButtons()を使うんじゃなかったっけ?

http://msdn.microsoft.com/ja-jp/library/ex7e7b4s(VS.80).aspx

編集 削除
ココ  2009-07-16 17:57:43  No: 70619  IP: 192.*.*.*

Spy++でウインドウIDを調べ、MFCのソースを検索しました。
確かにIDOKでなく、GetDlgItem(ID_WIZNEXT)でコントロールは取得できましたが、
EnableWindow(FALSE)しても無効化されないようです。
(SetWindowText("XXX")としたらテキストは変更できました。。。)

SetWizardButtonsにつきましては、[次へ]ボタンを表示させたまま無効化
させなくてはならないので、つかえないのです。。。

編集 削除
ココ  2009-08-03 23:38:35  No: 70620  IP: 192.*.*.*

自己レスです。
実はSetWizardButtonsは、[戻る][次へ]ボタンに関しては、
表示の有無ではなく、有効/無効の制御をするものでした。
つまり、両ボタンは必ず表示され、指定しないボタンは、
無効化されるだけです。

ちなみに、ドキュメントからはこの動きは読み取れませんでした。
先入観とは怖いものです。。。

編集 削除