コントロールが有効か無効か判定するには?

[戻る]
まゆたん 2001/02/22(木) 16:08:07
こんにちは。

わたしは今、ダイアログベースでプログラムを作っているんですが、
下に書くようなやり方がわからなくって困っています。

CString a;
UpdateData(TRUE);
if("エディットボックスA(メンバ変数:m_editA)が有効")
{
   a=m_editA;
}else{
   a="";
}

これが、わたしのやりたいことです。
EnableWindow(TRUE(FALSE))をIF文の中で書いちゃうと、
そこでEnableWindow関数が実行されちゃって、
「今、そのコントロールが有効なのか」が
判定できないです。

例えば、

m_editA.○○○()==-1 ・・・無効
m_editA.○○○()!=-1 ・・・有効

の○○○のような関数があったらいいなって思ってます。

もちろん、こんな便利な関数はないかもしれないけれど、
もし、コントロールの有効・無効を判定できるような
方法があれば、教えてください。

よろしくお願いします。

TADA 2001/02/22(木) 20:26:37
MFCの人間でないのでAPIですが
IsWindowEnabled(hwnd)
というのがあります。
指定されたウィンドウに対するマウスやキーボードの入力が
許可されているかどうかを判断するものです。

戻値が
TRUE:入力が許可されている
FALSE:それ以外

これではだめですか?

2001/02/23(金) 08:15:44
MFCもAPIと同じ関数があります。(CWndのメンバ)

m_editA.IsWindowEnabled()でOKです。

まゆたん 2001/02/23(金) 10:51:04
[[解決]]
TADAさん、重さん、ありがとうございます。

みなさんの教えてくださったとおり、

m_edit1.IsWindowEnabled()

を使って、有効・無効の判定ができました。

他にも、「Is」が頭につく関数があるみたいですね。
だいたい「Is」が頭につく関数は、「.」の前のものの
状態をあらわすのかなぁ(IsWindowVisibleは「見えるかどうか」だし)?

TADAさん、重さん、とっても参考になりました。
いつもいつも初歩的な質問ばっかりで、
わたし以外の人の質問・発言を見てると、
わたしにはすごくムズカシイことばっかりで、
わたし一人、浮いてる感じがしますけど、
もっと勉強して、早く皆さんくらいのレベルに
なりたいなって思います。

これからもよろしくお願いします!

古いスレッドには追加発言できません。