如何在listctrl的列上加一个checkbox
怎么在listctrl的列上加一个checkbox
类似这种样子的,最好给个例子,下面的checkbox我会做,主要是列上的checkbox
------解决方案--------------------
哈哈,我刚刚做了一个这样的。你可以把第一列只存1或者0(1表示check,0表示uncheck)然后在OnCustomDraw里面,看下面 :
if (_nCol == 0) // this column specify whether output
{
UINT _dfcs = DFCS_BUTTONCHECK
------解决方案--------------------
DFCS_FLAT;
if (_strItem[0] == '1')
_dfcs
------解决方案--------------------
= DFCS_CHECKED;
_pDC->DrawFrameControl(_rc, DFC_BUTTON, _dfcs);
}
else
{
_pDC->SetBkColor(GetSysColor(COLOR_WINDOW));
_pDC->DrawText(_strItem, _rc, (_nCol == 0) ? DT_LEFT : DT_CENTER);
}
------解决方案--------------------
1,做个 bitmap 按钮,样子: 一个空,一个 打勾, 11*11 大,外面 是 16*32,多余处红色
2.m_ImageHdr.Create(IDB_XX,16,1,RGB(255,0,0));
3.函数:
CHeadCtrl *pHead=GetHeaderCtrl();
pHead->SetImageList(&m_ImageHdr);
HD_ITEM CurItem;
pHead->GetItem(3,&CurItem);// 3 可以变
CurItem.mask = HDI_IMAGE
------解决方案--------------------
HDI_FORMAT;
CurItem.fmt
------解决方案--------------------
= HDF_IMAGE;
CurItem.iImage=1;
pHead->SetItem(3,&CurItem);
4.响应HeadClick (注意是 W 版本),修改iImage
------解决方案--------------------
哈哈,我刚刚做了一个这样的。你可以把第一列只存1或者0(1表示check,0表示uncheck)然后在OnCustomDraw里面,看下面 :
if (_nCol == 0) // this column specify whether output
{
UINT _dfcs = DFCS_BUTTONCHECK
------解决方案--------------------
DFCS_FLAT;
if (_strItem[0] == '1')
_dfcs
------解决方案--------------------
= DFCS_CHECKED;
_pDC->DrawFrameControl(_rc, DFC_BUTTON, _dfcs);
}
else
{
_pDC->SetBkColor(GetSysColor(COLOR_WINDOW));
_pDC->DrawText(_strItem, _rc, (_nCol == 0) ? DT_LEFT : DT_CENTER);
}
------解决方案--------------------
1,做个 bitmap 按钮,样子: 一个空,一个 打勾, 11*11 大,外面 是 16*32,多余处红色
2.m_ImageHdr.Create(IDB_XX,16,1,RGB(255,0,0));
3.函数:
CHeadCtrl *pHead=GetHeaderCtrl();
pHead->SetImageList(&m_ImageHdr);
HD_ITEM CurItem;
pHead->GetItem(3,&CurItem);// 3 可以变
CurItem.mask = HDI_IMAGE
------解决方案--------------------
HDI_FORMAT;
CurItem.fmt
------解决方案--------------------
= HDF_IMAGE;
CurItem.iImage=1;
pHead->SetItem(3,&CurItem);
4.响应HeadClick (注意是 W 版本),修改iImage