【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】

ダイアログ上にあるコンボボックスを選択不可状態にしたいのですが、
良い方法が見つかりません。
どなたか良い方法ご存知でしたら、ご教授お願い致します。

なお、この場合の選択不可とは、
コンボボックス上でクリックしても、
プルダウンされず、何も反応しないことを指します。
またコンボボックスのTypeは、ドロップダウンにて作成しています。

開発環境は、VC++2005です。
また、当方MFC経験2ヶ月程度の初心者ですので、
なるべく分かりやすい解説いただけると幸いです。

お手数ですが、御回答お願いいたします。

A 回答 (2件)

CWnd::GetDlgItem()でコンボボックスのオブジェクトを取得し、


http://msdn.microsoft.com/ja-jp/library/77d16yhw …

CWnd::EnableWindow()で使用不可にする、
http://msdn.microsoft.com/ja-jp/library/5kbfsahf …

で行けるかと思います。
#MFC環境ないんで検証してません
    • good
    • 0
この回答へのお礼

CComboBox* pCbox = (CComboBox*)GetDlgItem(IDC_COMBO1);
pCbox->EnableWindow(FALSE);
で解決しました!
どうもありがとうございました。

お礼日時:2009/01/07 09:25

Enabledプロパティをfalseにすると、一切、触れなくなります。



但し、フォーカスも当たらなくなります(フォーカスを当てようとすると例外が発生するので注意)

また、配色も変化し「触れない色」になります。

この回答への補足

御回答ありがとうございます。

Enabledプロパティをfalseにするというのは、
リソースビューでのプロパティで設定するのではないですよね。。
ちなみに使用用途を記述していませんでしたが、
別のラジオボタンを切り替えることによって、
コンボボックスが使用可能状態から使用不可としたいのです。

Enabledについて調べてみると、
UPDATE_COMMAND_UIのメッセージハンドラを追加し、
pCmdUI->Enable(false)で切り替えるとありますが、
このことでしょうか?
また、もしこの意味で合っているのなら、
メッセージハンドラの追加方法についてご教授頂けないでしょうか?
もし勘違いをしていたならば申し訳ありません。

補足日時:2009/01/06 15:18
    • good
    • 0
この回答へのお礼

CComboBox* pCbox = (CComboBox*)GetDlgItem(IDC_COMBO1);
pCbox->EnableWindow(FALSE);
で解決しました!
どうもありがとうございました。

お礼日時:2009/01/07 09:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A