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

解決


ココ  2009-07-17 00:11:28  No: 70616

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


Blue  2009-07-17 00:20:43  No: 70617

次へのIDはID_WIZNEXTでは?


maru  2009-07-17 02:09:41  No: 70618

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

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


ココ  2009-07-17 02:57:43  No: 70619

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

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


ココ  2009-08-04 08:38:35  No: 70620

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

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加