请问,我用CListCtrl显示数据,用Report风格,有3个列。我设置了Owner Data风格。在OnGetdispinfoList()函数中更新数据,可以成功。但是我想在每一行前加一个单选框,我用ListView_SetExtendedListViewStyle(hwnd,LVS_EX_CHECKBOXES|LVS_EX_FULLROWSELECT|LVS_EX_SUBITEMIMAGES);设置,并用SetItemStatus函数更改状态,总是不成功,但是,在我不用Owner Data风格,用函数加数据时,就可以。请问,我想保留Owner Data风格,怎么加一个checkbox并设置其状态?
谢谢,急。
谢谢,急。
解决方案 »
- CrichEditCtrl中的文字用GDI+输出到屏幕上
- d3d8中根据device取D3DPRESENT_PARAMETERS
- 一个传送文件的程序,帮忙解答
- 串口 接收到数据串,如何格式成16进制字符?
- 没辙了我,帮忙看看,
- ado连接的数据库意外断开了以后我怎么知道?
- 怎么回事??error LNK2019: 无法解析的外部符号__imp___invalid_parameter_noinfo
- 在edit box 中如何实现换行?
- 关于自定义文件夹,如何通过控制文件夹属性来隐藏文件?
- NT下修改本机IP,不用重启动的方法?急,急!!
- 请问窗口之间通信的问题
- 如果用C语言做一个类似MSN message6的界面,都要考虑什么?
看看吧
{
static TVITEM tvItem; tvItem.mask = TVIF_HANDLE | TVIF_STATE;
tvItem.hItem = hItem;
tvItem.stateMask = TVIS_STATEIMAGEMASK; /*
Since state images are one-based, 1 in this macro turns the check off, and
2 turns it on.
*/
tvItem.state = INDEXTOSTATEIMAGEMASK((fCheck ? 2 : 1)); if (bDelay)
::PostMessage(m_deptTree.m_hWnd,TVM_SETITEM , 0L, (LPARAM)(&tvItem));
else
::SendMessage(m_deptTree.m_hWnd,TVM_SETITEM , 0L, (LPARAM)(&tvItem));
return TRUE;// return TreeView_SetItem(m_deptTree.m_hWnd, &tvItem);
}
BOOL CSpecifyDeptPage::GetCheckState(HTREEITEM hItem)
{
TVITEM tvItem; // Prepare to receive the desired information.
tvItem.mask = TVIF_HANDLE | TVIF_STATE;
tvItem.hItem = hItem;
tvItem.stateMask = TVIS_STATEIMAGEMASK; // Request the information.
TreeView_GetItem(m_deptTree.m_hWnd, &tvItem); // Return zero if it's not checked, or nonzero otherwise.
return ((BOOL)(tvItem.state >> 12) -1);
}void CSpecifyDeptPage::OnClickDeptTree(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
//NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
UNREFERENCED_PARAMETER(pNMHDR);
HTREEITEM itemTree; UINT nFlags;
CPoint curPoint;
GetCursorPos(&curPoint);
m_deptTree.ScreenToClient(&curPoint);
itemTree= m_deptTree.HitTest(curPoint, &nFlags);
if (itemTree!=NULL)
m_deptTree.Select(itemTree,TVGN_CARET);
if (m_bEditable == FALSE) {
// avoid to change the check state
SetCheckState(itemTree,GetCheckState(itemTree),TRUE);
}
*pResult = 0;
}Command what is yours
Conquer what is not