工控编程吧
标题:
63上位机VC MFC列表框控件实现标签式数据选择
[打印本页]
作者:
qq263946146
时间:
2015-12-7 21:44
标题:
63上位机VC MFC列表框控件实现标签式数据选择
(, 下载次数: 2)
上传
点击文件名下载附件
63上位机VC MFC列表框控件实现标签式数据选择
功能展示
有时候我们使用列表控件时,想在内部罗列出复选按钮,供用户选择相应功能,比如当前工程中想使<强制退出>按钮生效,我们就得复选上强制退出选项。MFC列表控件类CListBoxt不带这功能,怎么办呢?我们这例程实现了这功能,效果如图
要点提示
微软通过升级CListBox,给我们另外提供了CCheckListBox类, CCheckListBox是对CListBox的扩充,使用CListBox具有了标签复选功能。通过CCheckListBox类的成员函数SetCheckStyle()方法实现列表标签复选样式,然后通过SetCHeck方法使用列表项前的复选框处于选中状态,通过GetCheck()函数获得列表项前的复选状态,如果返回1为选中,0为没有被选中;
实现功能
1.新建基于对话框的应用程序
2.添加一个列表框控件,并关联控件如我们控件CListBox m_CheckList;然后更改变量类型为CCheckListBox m_CheckList;初始化这个变量,如我们当前例程m_CheckList.SetCheckStyle(BS_CHECKBOX);m_CheckList.AddString("去工控编程吧");
m_CheckList.AddString("去工控学堂"); m_CheckList.AddString("强制退出"); m_CheckList.AddString("联系作者");
3.添加几个按钮,我们当前添加四个来给列表框控制。这四个按钮ID不改动,文本设置为上面四个文本
4.用VC类向导添加CListBox的单击或双击事件函数,我们例程为单击事件,再添加一个按钮及它的响应函数额外实现CListBox 选项的执行;
void CGkbc8Dlg::OnSelchangeList1() //列表框控件单击事件处理
{
int i=m_CheckList.GetCurSel();
if(i<0)
return;
if(m_CheckList.GetCheck(i)<1)
{
m_CheckList.SetCheck(i,1);
if(i==0)
GetDlgItem(IDC_BUTTON1)->EnableWindow();
}
else
{
m_CheckList.SetCheck(i,0);
if(i==0)
GetDlgItem(IDC_BUTTON1)->EnableWindow(FALSE);
}
}
void CGkbc8Dlg::OnButton5()
{
if(m_CheckList.GetCheck(1))
GetDlgItem(IDC_BUTTON2)->EnableWindow(TRUE);
else
GetDlgItem(IDC_BUTTON2)->EnableWindow(FALSE);
if(m_CheckList.GetCheck(2))
GetDlgItem(IDC_BUTTON3)->EnableWindow(TRUE);
else
GetDlgItem(IDC_BUTTON3)->EnableWindow(FALSE);
if(m_CheckList.GetCheck(3))
GetDlgItem(IDC_BUTTON4)->EnableWindow(TRUE);
else
GetDlgItem(IDC_BUTTON4)->EnableWindow(FALSE);
}
复制代码
我们来演示下功能实现的整个过程
[iqiyi]http://player.video.qiyi.com/d8cdd1f113b794d169e1640cd7be40ee/0/0/w_19rt670x99.swf-albumId=4993781809-tvId=4993781809-isPurchase=0-cnId=12[/iqiyi]
(, 下载次数: 0)
上传
点击文件名下载附件
[note]1[/note]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4