プロが教える店舗&オフィスのセキュリティ対策術

 CWnd::EnableWindow()で有効、無効を切り替えるというのはわかりますが、エディットボックスの有効、無効を切り替えるにはどうしたらいいでしょうか?
現在MFCで開発していますが、エディットボックスのメンバ変数にはCStringを使っているので、EnableWindowの使い方がわかりません。
動作環境はWindows2000とNTです。
ツールはVC++6.0を使用しています。

A 回答 (3件)

GetDlgItem(コントロールID)->EnableWindow(...);

    • good
    • 2

方法1


エディットボックスに CEdit 型のメンバ変数を割り当てる。
CEdit は CWnd の派生クラスなので EnableWindow が使えます。
CString 型のメンバ変数と CEdit 型のメンバ変数は同時に割り当てられます。

方法2
GetDlgItem を使って、エディットボックスへのポインタを取得し、
そのポインタを使って EnableWindow を呼び出す。

この回答への補足

 コンパイルしてみました。
 CEditを使用すると、多くの個所を修正しなくてはならなくなるので、使用することができませんでした。時間もあまりないので・・・。
 ウィンドウハンドルの取得の仕方がわかりません。

補足日時:2003/05/23 15:12
    • good
    • 0

> CEditを使用すると、多くの個所を修正しなくてはならなくなるので、


> 使用することができませんでした。

や、ですから、CString 型の変数は残したまで、
CEdit 型の変数を追加すればよいのです。
ClassWizard の「メンバ変数」-「変数の追加」で、
カテゴリに「コントロール」を選んでください。
(↑方法1)

> ウィンドウハンドルの取得の仕方がわかりません。

ウィンドウハンドルというかポインタの取得方法は、
#1 で episteme さんが書いておられる通りです。
「コントロールID」のところには例えば IDC_EDIT1 などが入ります。
(↑方法2)
    • good
    • 0
この回答へのお礼

はじめは意味がわからなかったのですが、実際にやってみました。そしたら、何の問題もなくできましたよ。
 CStringでひっかかって悩んでいたのが嘘のようでした。
 ありがとうございました。
 また何かありましたら、アドバイスの方よろしくお願いします。
 プログラマーを目指しているのですが、わたしはそのなかでも一番の落ちこぼれ組みの一人だったので、なにかと大変です。
 わからないわけではありませんが、普通の人より、理解するのに3倍くらいの時間がかかるだけなんです。
 本当にありがとうございました。
 m(_ _)m

お礼日時:2003/05/26 10:08

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

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