いつもお世話になっております。
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
みたいなことがやりたいのですが。
もしかしたらとんでもなく単純なことなのかもしれませんが分かりません。
どなたかご教授いただけたら幸いです。
CWnd::EnableWindowの状態を知るのは、CWnd::IsWindowEnabledです。
CEdit::SetReadOnlyの状態を知るのは、
#現在の設定状態は、CWnd::GetStyle 関数の戻り値の ES_READONLY フラグで
#知ることができます。
とMSDNに書いてあります。
Enableの件は解決できました。
ReadOnlyの方は、msdnでの文章の意味がよく分かりませんでした。
if (CEdit.GetStyle() == ES_READONLY)
ではないんですよね?
だから、意味が分からないのですが…
スタイルはビットフラグですから,論理積をとってしらべることになります。
>if (CEdit.GetStyle() == ES_READONLY)
>
>ではないんですよね?
if (CEdit.GetStyle() & ES_READONLY )
Cの入門書を入手して、ビット演算(もしくはビット処理演算)の項目を
読んでみましょう。
ありがとうございます解決しました。
ツイート | ![]() |