コントロールの状態を知るには?

解決


gari  2004-10-27 00:50:23  No: 54891

いつもお世話になっております。

MFCにてReadOnlyやEnableの設定は、それぞれ
m_Edit.SetReadOnly(TRUE)、
m_Button.EnableWindow()
を使えばできますが、コントロールの状態を知るにはどうしたらよいのか
分かりません。

例えば、Editコントロールが今ReadOnly = TRUEとか
ボタンがEnable = FALSEとかです。

VBで言うところの、
If TextBox.ReadOnly = True Then

    処理

End If

とか、

If Button.Enabled = True Then

    処理

End If

みたいなことがやりたいのですが。

もしかしたらとんでもなく単純なことなのかもしれませんが分かりません。
どなたかご教授いただけたら幸いです。


てつや  2004-10-27 01:38:53  No: 54892

CWnd::EnableWindowの状態を知るのは、CWnd::IsWindowEnabledです。
CEdit::SetReadOnlyの状態を知るのは、

#現在の設定状態は、CWnd::GetStyle 関数の戻り値の ES_READONLY フラグで
#知ることができます。

とMSDNに書いてあります。


gari  2004-10-27 23:30:54  No: 54893

Enableの件は解決できました。

ReadOnlyの方は、msdnでの文章の意味がよく分かりませんでした。

if (CEdit.GetStyle() == ES_READONLY)

ではないんですよね?

だから、意味が分からないのですが…


YuO  2004-10-27 23:40:17  No: 54894

スタイルはビットフラグですから,論理積をとってしらべることになります。


てつや  2004-10-27 23:57:48  No: 54895

>if (CEdit.GetStyle() == ES_READONLY)
>
>ではないんですよね?

if (CEdit.GetStyle() & ES_READONLY )

Cの入門書を入手して、ビット演算(もしくはビット処理演算)の項目を
読んでみましょう。


gari  2004-10-28 02:11:41  No: 54896

ありがとうございます解決しました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加