权限设置--------ListBox控件中使用CheckListBox控件的功能----------ListBox的复选框如何实现

权限设置--------ListBox控件中使用CheckListBox控件的功能----------ListBox的复选框如何实现
功能:ListBox中的复选框实现之,每次点击选择,就会从中读取到选择的项,并设置相应的按钮为灰色或者黑色,显示可用或者不可用。

核心代码:
初始化代码中:
    m_CheckList.SubclassDlgItem(IDC_LIST1, 
this );  //  IDC_LIST1是ListBox控件的资源ID
    m_CheckList.SetCheckStyle(BS_AUTOCHECKBOX);    
    m_CheckList.AddString(
" 添加 " );
    m_CheckList.AddString(
" 删除 " );
    m_CheckList.AddString(
" 搜索 " );
    m_CheckList.AddString(
" 修改 " );
    GetDlgItem(IDC_BUTTON1)
-> EnableWindow(FALSE);
    GetDlgItem(IDC_BUTTON2)
-> EnableWindow(FALSE);
    GetDlgItem(IDC_BUTTON3)
-> EnableWindow(FALSE);
    GetDlgItem(IDC_BUTTON4)
-> EnableWindow(FALSE);

    UpdateData(FALSE);





==============================================================================================
实现代码:
void  CTest21Dlg::OnSet() 
{
    
// TODO: Add your control notification handler code here
    UpdateData(TRUE);
    
if(1==m_CheckList.GetCheck(0))
        GetDlgItem(IDC_BUTTON1)
->EnableWindow(TRUE);
    
else
        GetDlgItem(IDC_BUTTON1)
->EnableWindow(FALSE);
    
if(1==m_CheckList.GetCheck(1))
        GetDlgItem(IDC_BUTTON2)
->EnableWindow(TRUE);
    
else
        GetDlgItem(IDC_BUTTON2)
->EnableWindow(FALSE);
    
if(1==m_CheckList.GetCheck(2))
        GetDlgItem(IDC_BUTTON3)
->EnableWindow(TRUE);
    
else
        GetDlgItem(IDC_BUTTON3)
->EnableWindow(FALSE);
    
if(1==m_CheckList.GetCheck(3))
        GetDlgItem(IDC_BUTTON4)
->EnableWindow(TRUE);
    
else
        GetDlgItem(IDC_BUTTON4)
->EnableWindow(FALSE);

}





关键问题解决:
如何实现CheckListBox类呢?
初始化代码中给出了答案。首先需要在XXDlg.h文件中声明一个类型就是CheckListBox的,然后在初始化中对这个变量进行特化。
这样,成员就从普通的ListBox变成了CheckListBox类型的。需要注意的是,需要设置属性为hasstring和overdraw。具体的可以看看代码上面的说明。


总结:
如上,
唯一的一点就是API函数的时候,GetCheck函数的使用。

你可能感兴趣的:(权限设置--------ListBox控件中使用CheckListBox控件的功能----------ListBox的复选框如何实现)