[ホーム] - [Windows 10 FAQ 一覧] - [【VC++】Button クラスがボタンかチェックボックスかラジオボタンか確認する]



作成日:2019/01/05
更新日:2019/03/11
対象:Windows 10

【VC++】Button クラスがボタンかチェックボックスかラジオボタンか確認する




【目次】


目的


VC++環境において Button Class がボタンなのかラジオボックスなのかチェックボックスなのか判定できない。(どれもButton Classであるため)
どのように判定するのか。

Button クラスがボタンかチェックボックスかラジオボタンか確認する


実際にチェックを行い、チェックされるか結果から判定する。


// hWnd が今チェックされているか覚えておく。後で戻すために。
LRESULT before_ischeckbox = SendMessage(hWnd, BM_GETCHECK, 0, 0);

//チェックオンにする。
LRESULT ischeckbox = SendMessage(hWnd, BM_SETCHECK, BST_CHECKED, 0);


//確認してみて checkされていたらチェックボックスと判定
ischeckbox = SendMessage(hWnd, BM_GETCHECK, 0, 0);

if (ischeckbox != 1)
    //チェックされていない!チェックボックスやラジオボタンではなさそうだ。
ischeckbox = 0;
else
{
    //チェックボックスかラジオボタンのようだ。矛盾しないようにもとに戻しておく。
LRESULT ischeckbox = SendMessage(hWnd, BM_SETCHECK, before_ischeckbox, 0);
}






(ご注意) 本サイト内の内容を使用して発生したいかなる時間的損害、金銭的損害あるいはいかなる損害に対して、いかなる人物も一切の責任を負いません。あくまでも個人の判断で使用してください。 本ページは独自に調査をしたアンオフィシャル(非公式)な内容です。内容に誤りがある可能性や仕様変更により内容が不正確になる可能性があります。 本サイト内掲載されている情報は、著作権法により保護されています。いかなる場合でも権利者の許可なくコピー、配布することはできません。 このページはリンクフリーです。(このページへの直接リンクも可能です。)


Copyright(c) TOOLJP.COM 1999-2022

[Windows 10 FAQ 一覧に戻る]