こんにちは。
わたしは今、ダイアログベースでプログラムを作っているんですが、
下に書くようなやり方がわからなくって困っています。
CString a;
UpdateData(TRUE);
if(エディットボックスA(メンバ変数:m_editA)が有効)
{
a=m_editA;
}else{
a=";
}
これが、わたしのやりたいことです。
EnableWindow(TRUE(FALSE))をIF文の中で書いちゃうと、
そこでEnableWindow関数が実行されちゃって、
「今、そのコントロールが有効なのか」が
判定できないです。
例えば、
m_editA.○○○()==-1 ・・・無効
m_editA.○○○()!=-1 ・・・有効
の○○○のような関数があったらいいなって思ってます。
もちろん、こんな便利な関数はないかもしれないけれど、
もし、コントロールの有効・無効を判定できるような
方法があれば、教えてください。
よろしくお願いします。
MFCの人間でないのでAPIですが
IsWindowEnabled(hwnd)
というのがあります。
指定されたウィンドウに対するマウスやキーボードの入力が
許可されているかどうかを判断するものです。
戻値が
TRUE:入力が許可されている
FALSE:それ以外
これではだめですか?
MFCもAPIと同じ関数があります。(CWndのメンバ)
m_editA.IsWindowEnabled()でOKです。
TADAさん、重さん、ありがとうございます。
みなさんの教えてくださったとおり、
m_edit1.IsWindowEnabled()
を使って、有効・無効の判定ができました。
他にも、「Is」が頭につく関数があるみたいですね。
だいたい「Is」が頭につく関数は、「.」の前のものの
状態をあらわすのかなぁ(IsWindowVisibleは「見えるかどうか」だし)?
TADAさん、重さん、とっても参考になりました。
いつもいつも初歩的な質問ばっかりで、
わたし以外の人の質問・発言を見てると、
わたしにはすごくムズカシイことばっかりで、
わたし一人、浮いてる感じがしますけど、
もっと勉強して、早く皆さんくらいのレベルに
なりたいなって思います。
これからもよろしくお願いします!