MFC列表控件中的复选框响应问题

我在对话框程序里做了个列表控件,列表里包含了很多行,并在列表的类型里设置了复选框格式。代码如下:m_CalList.InsertColumn(0,"",LVCFMT_LE... 我在对话框程序里做了个列表控件,列表里包含了很多行,并在列表的类型里设置了复选框格式。代码如下:
m_CalList.InsertColumn(0,"",LVCFMT_LEFT,20);
m_CalList.InsertColumn(1,"变量名称",LVCFMT_LEFT,70);
m_CalList.InsertColumn(2,"描述",LVCFMT_LEFT,120);

m_CalList.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_CHECKBOXES);

由于我的复选框是单独的一列,不是那种直接在第一列前加个复选框的格式。现在我想实现对复选框的选择,就可以选中整行数据。
对于列表控件中 的复选框功能,有个CListCtrl::SetCheck和CListCtrl::GetCheck函数设置和获得复选框的状态,我不知该怎么用,求指教!!!
回复一楼,我的意思是我把复选框作为了单独的一列,也就是第一列。
展开
 我来答
百度网友e81bb48
推荐于2016-10-19 · 超过45用户采纳过TA的回答
知道小有建树答主
回答量:86
采纳率:0%
帮助的人:119万
展开全部
实现这些功能你需要派生CListCtrl类,新类名可定为CMyListCtrl;
然后派生他的NM_CLICK消息
afx_msg void OnClickMyList(NMHDR *pNMHDR, LRESULT *pResult);
ON_NOTIFY(NM_CLICK, IDC_MYLIST, &CDlgUPText::OnClickMyList)

void CDld::OnClickMyList(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
// TODO: Add your control notification handler code here
int nItem = pNMItemActivate->iItem;
if ( nItem > -1 )
{
UINT Flag = 0;
m_ListCtrl.HitTest( pNMItemActivate->ptAction, &Flag );
if ( Flag == LVHT_ONITEMSTATEICON )
{
bool bChecked = ListView_GetCheckState( m_ListCtrl.m_hWnd,nItem );
if(!bChecked)
{// 勾选,设置整行选中状态
SetItemState( nItem , LVIS_SELECTED , LVIS_SELECTED );
}
else
{// 消除整行选中状态
SetItemState( nItem , 0, LVIS_SELECTED );
}
}
}
更多追问追答
追问
IDC_MYLIST这个IDC是子窗口中列表控件的ID么?&CDlgUPText::OnClickMyList是什么意思?

m_ListCtrl是什么啊?新建的变量么?
疑问?
追答
就是你的m_CalList,IDC_MYLIST这个IDC是子窗口中列表控件的ID,CDlgUPText::OnClickMyList是你的消息响应函数,你看看ON_NOTIFY的定义
sdghchj
2011-05-12 · TA获得超过1.2万个赞
知道大有可为答主
回答量:3977
采纳率:0%
帮助的人:6134万
展开全部
说实话,还没看懂你说的什么意思。
什么单独的一列,单独在哪?除了第一列还能在其它列有复选框?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友5803c9a
2011-05-12 · TA获得超过2162个赞
知道小有建树答主
回答量:891
采纳率:0%
帮助的人:1234万
展开全部
遍历列表,如果这一行选中了就执行你的处理
for (int i=0; i<m_CalList.GetItemCount(); i++)
{
if (m_CalList.GetCheck(i))
{
//你的处理
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式