Windows2000, VisualC++6.0 SDI で作成しています。
FormViewにして、そこにボタン等を配置しています。
[ResouseView]-[Accelerator]から、ボタンのショートカットキーを登録して
いるのですが、全てのボタンが常に有効になっているという訳ではありません。
m_btn2.EnableWindow(FALSE); // 使用禁止
m_btn2.ShowWindow(FALSE); // 非表示
いくつかのボタンだけが表示され、それが押されたときに、別のボタンが表示
されて、押せるようにしたいと思っています。
現在では、アクセラレータキーが常に有効になっており、ボタンが表示されて
いなくても、機能してしまいます。
何か良い方法がありましたら、教えて頂けないでしょうか。
>現在では、アクセラレータキーが常に有効になっており、ボタンが表示されて
>いなくても、機能してしまいます。
IsWindowVisible() なり IsWindowEnable() なりで、フルイにかけりゃいいと思うが。そういう話ではない?
>IsWindowVisible() なり IsWindowEnable() なりで、フルイにかけりゃいい
>と思うが。そういう話ではない?
すみません。私の勘違いだったみたいです。ボタンを無効、非表示にしていれば、
アクセラレータキーも無効になっていました。
私は、ボタンを押したときに、index番号みたいなのをだして、それを基に条件
分岐していたため、現在の表示・非表示、有効・無効は判っていたのですが、
IsWindowVisible(), IsWindowEnable()で現在の状態を確認する方が、バグが
少なくて、汎用性もあって良いかと思いました。ありがとうございます。