m_wndXDataTree.ModifyStyle(0, TVS_CHECKBOXES);

for (unsigned int n=0; n<m_vecXData.size();n++)
{
const ST_CHART_XY_DATA& stData = m_vecXData[n];
HTREEITEM hItem = m_wndXDataTree.InsertItem(stData.strName);
m_wndXDataTree.SetCheck(hItem);
}本来想设置每个item前面的checkbox打钩选择。怎么没有效果???用法不对么?

解决方案 »

  1.   


    m_tree.ModifyStyle(0, TVS_CHECKBOXES); CString str[] =
    {
    _T("AA"),
    _T("BB"),
    _T("CC")
    }; for(int i=0; i<sizeof(str)/sizeof(str[0]); i++)
    {
    HTREEITEM hItem = m_tree.InsertItem(str[i]);
    m_tree.SetCheck(hItem);
    }
      

  2.   

    对于对话框中的TreeView控件,如果想在初始化(OnInitDialog)中SetCheck,必须:
    m_tree.ModifyStyle( TVS_CHECKBOXES, 0 );
    m_tree.ModifyStyle( 0, TVS_CHECKBOXES );
    m_tree.SetCheck(hItem, TRUE);
    即即使在对话框编辑器中为TreeView增加了Check Boxes属性,也必须重新设一次TVS_CHECKBOXES,SetCheck才能起作用
    而对于非初始化中的SetCheck,则不受影响出处:http://shuiyu.100steps.net/blog_old/index.php?job=art&articleid=a_20050303_225747感觉此文作者尽心尽责,有关CTreeView的一些问题说的很详细,也许我以后能用的着,所以先把他这篇文章放于下面,以便来日方便查看:
      

  3.   

    囧,直接在对话框编辑框中勾上Check Boxes