• ベストアンサー

C(C++) コントロール(ボタン)の制御 ボタン1押したらボタン2が使用不可に・・・その逆も。。。

はじめまして。 回りに聞ける人がいなくて困ってます。 C(C++)でフォームにボタンを設置し、任意のボタンを押したら、他のボタンが押せなくなるように、 もう1回押したら、他のボタンが押せるように戻るっていう感じの制御をしたいのですが、書き方が分かりません。 分かる方、記述例をつけて教えて頂けると助かります。お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

こんんちは ボタン1を押したらボタン2の有効/無効を最クリックに切り替えると言ううことでよね? ボタン1が押されたときのハンドラのみ記述します。 参考にしてみてください。 有効=ボタンが押せる状態 無効=ボタンが押せない状態 void CMyDlg::OnButton1() { CButton *pBtn = (CButton*)GetDlgItem(IDC_BUTTON2); // ボタン2が有効か無効かをチェック if( pBtn->IsWindowEnabled() ){ // 有効なら無効にする pBtn->EnableWindow(FALSE); } else { // 無効なら有効にする pBtn->EnableWindow(TRUE); } }

masamasa01
質問者

お礼

御礼遅くなり申し訳ありませんでした。非常に助かりました。またよろしくお願い致します。

その他の回答 (1)

  • clsdi99
  • ベストアンサー率63% (31/49)
回答No.1

押せなくなるイメージは非活性と考えてよろしいでしょうか? とりあえず任意のボタンというものを通常のボタンではなく、チェックボックスにしてスタイルをプッシュボタン型にします。 これで押したら押しっぱなしのイメージになります。 (とうぜんもう一度押したら戻ります) あとはそのボタン押下のイベントハンドラで他のボタンを 活性・非活性制御してあげればよいと思います。

masamasa01
質問者

お礼

御礼遅くなり申し訳ありませんでした。非常に勉強になりました。またよろしくお願い致します。