タブのラベル選択を無効にするには?


J.T  2004-01-13 15:23:07  No: 53013  IP: [192.*.*.*]

MFCで、タブコントロール下にそれぞれTAB0,TAB1,TAB2の3つラベルをもつ
ダイアログを作成したのですが、TAB1のラベルの選択を無効にする
(TAB1のページ選択のみを非アクティブ化する)には
どのようにしたらよろしいのでしょうか?
ご存知のかたがいらっしゃいましたら宜しくお願いします。

編集 削除
YuO  2004-01-14 14:27:42  No: 53014  IP: [192.*.*.*]

> ダイアログを作成したのですが、TAB1のラベルの選択を無効にする
> (TAB1のページ選択のみを非アクティブ化する)には
> どのようにしたらよろしいのでしょうか?

やったことがないですが,TCN_SELCHANGINGにTRUEを返すことでできるようです。
http://msdn.microsoft.com/library/en-us/shellcc/platform/commctls/tab/notifications/tcn_selchanging.asp

MFCということなので,ダイアログにOnNotifyを用意するかON_NOTIFY_REFLECTを使うことで,
対応できると思います。

編集 削除
J.T  2004-01-15 08:52:12  No: 53015  IP: [192.*.*.*]

YuO様、早速のご回答ありがとうございます。

自分なりにじたばたしてみたのですが、VC++をはじめてまだ日が浅く、
スキル不足なので、解決に至っておりません。
お手数とは思いますが、もう少し具体的に説明していただくことは
可能でしょうか?

現状は、ClassWizardでTCN_SELCHANGEメッセージをインプリメントし、
Cxx::OnSelchangeTab…()の中で、TAB1のページの選択時は、
ある条件がそろわないと、エラーメッセージBOXを表示させて、
TAB0のページの表示に戻るように作っております。
(これでも事は足りるのですが・・・)

希望としては、条件が揃っていない場合、TAB1のラベルの文字が
グレイアウトした状態(ボタンなら押せなくなる状態と同じ感じ)になり、
オペレータが選択できないようにしたいと思っています。
OnNotifyを用意することで、実現は可能なのでしょうか?

編集 削除