チェックボックス読みOnly

[戻る]
syuu 2006/03/17(金) 14:47:36
チェックボックスを読み込みOnly(灰色)にできますか?
エディットボックスの奴と同じです。
net2003でMFCアプリを使ってます。
方法など教えてください

たいちう 2006/03/17(金) 18:28:00
BOOL CMyDlg::OnInitDialog()
{
    ...

    // TODO: 初期化をここに追加します。
    GetDlgItem(IDC_CHECK1)->EnableWindow(FALSE);

    GetDlgItem(IDC_CHECK2)->EnableWindow(FALSE);
    ((CButton*)GetDlgItem(IDC_CHECK2))->SetCheck(BST_CHECKED);

    GetDlgItem(IDC_CHECK3)->EnableWindow(FALSE);
    ((CButton*)GetDlgItem(IDC_CHECK3))->SetCheck(BST_INDETERMINATE);

    return TRUE;
}

例えばこんなやり方でできるけど、BST_CHECKEDとBST_INDETERMINATEの
区別は無理ですね。これも必要ならオーナードローをすることになるかと。

別の方法としては、EnableWindowはTRUEのままで見た目は同じにしておいて、
クリックを無視する方法かな。
PreTranslateMessageで処理すればよいかと。

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