ダイログのチェックボタン

[戻る]
daia 2007/03/11(日) 22:51:45
以下は何と解釈すればいいか教えてください。



IsDlgButtonChecked(hwnd , 4) チェック状態を調べ、

戻り値が BST_CHECKEDなら  ! で BST_UNCHECKEDになりますか?



BST_UNCHECKED == BST_CHECKED  は偽となり0
BST_UNCHECKEDに変更するという事ですか?



戻り値が BST_INDETERMINATEの場合 ! するとどんな値になりますか?

教ええてください。






CheckDlgButton(hwnd , 4 ,     !(IsDlgButtonChecked(hwnd , 4) == BST_CHECKED)

かさのば 2007/03/12(月) 00:41:52
申し訳ないのですが、何が言いたいのか良くわかりません

>>戻り値が BST_CHECKEDなら  ! で BST_UNCHECKEDになりますか?
とは
!(IsDlgButtonChecked(hwnd , 4) == BST_CHECKED)

かさのば 2007/03/12(月) 01:03:25
編集中に送信してしまいました^^;
ついでに説明の仕方を変えます

!(IsDlgButtonChecked(hwnd , 4) == BST_CHECKED)
上記式ですが、関係演算子「!」は否定を表しますので
IsDlgButtonChecked(hwnd , 4)の戻り値がBST_CHECKEDなら「IsDlgButtonChecked
(hwnd , 4) == BST_CHECKED」がTRUEとなり「!(TRUE)」ということになるので結果は
FALSEとなります。
また、戻り値がそれ以外(BST_UNCHECKED,BST_INDETERMINATE)ならTRUEとなります。

なので
>>戻り値が BST_CHECKEDなら  ! で BST_UNCHECKEDになりますか?
コレに対する答えはNOです
!(BST_CHECKED)は「BST_CHECKEDではない」というだけであって、BST_UNCHECKEDとイコ
ールであるとはなりません。

とまぁ、こんな感じでどうでしょう?

#チェックボタンの状態で処理を分けたいのであればswitch文の使用を薦めます。

daia 2007/03/12(月) 21:29:16
どうも丁寧な説明ありがとうございます!
たいへん参考になりました!

>戻り値がそれ以外(BST_UNCHECKED,BST_INDETERMINATE)ならTRUEとなります。
等々たいへん勉強になりました。

switch文を使うというのも教えていただきありがとうございます!

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