大家好:         我想问一下,在主对话框上,我点击一个按钮弹出另一个对话框,我在该弹出的对话框上有一个带有复选框的         树控件,我想请教一下怎样让其中几个复选框默认选中?
         最好有具体的代码。在这儿先谢谢大家了。

解决方案 »

  1.   

    在弹出的对话框的OnInitDialog函数中设置
      

  2.   

    CTreeCtrl::SetCheck()  BOOL SetCheck(
       HTREEITEM hItem,
       BOOL fCheck = TRUE 
    );
     
      

  3.   

    很不幸的是 我在弹出的对话框的OnInitDialog设置不好用。m_viewlisttree.SetCheck(hUsertree);hUsertree 是我想要默认选中复选框的结点,我的代码有问题吗 ?
      

  4.   

            UpdateData();
    if(m_viewgroupname == "默认视频组")
    {
    GetDlgItem(IDC_VIEWGROUPNAMEEDIT)->EnableWindow(FALSE);
    GetDlgItem(IDC_VIEWLISTTREE)->EnableWindow(FALSE);
    GetDlgItem(IDC_DECIDEBUTTON)->EnableWindow(FALSE);
    }
    _variant_t varviewgroupname;
    CString viewgroupname;
    CString sqlstring = "select Devname from DevInfo where Devgrpname = ''";
    int insertpos = sqlstring.Find("Devgrpname = '");
    insertpos += 14;
    sqlstring.Insert(insertpos,m_viewgroupname);
    pHandlerDeviceRecordset.CreateInstance(__uuidof(Recordset));
    try
    {
    pHandlerDeviceRecordset->Open(_bstr_t(sqlstring), // 查询DemoTable表中所有字段
    _variant_t((IDispatch *)m_pConnectServer,true), // 获取库接库的IDispatch指针
    adOpenDynamic,
    adLockOptimistic,
    adCmdText);
    }
    catch(_com_error &e)
    {
    AfxMessageBox(e.Description());
    } while (!pHandlerDeviceRecordset->adoEOF)
    {
    varviewgroupname = pHandlerDeviceRecordset->GetCollect("Devname"); if(varviewgroupname.vt != VT_NULL)
    {
    viewgroupname = (LPCSTR)_bstr_t(varviewgroupname);
    }
    TVINSERTSTRUCT tvInsert;
    tvInsert.hParent = NULL;
    tvInsert.hInsertAfter = NULL;
    tvInsert.item.mask = TVIF_TEXT;
    tvInsert.item.pszText = viewgroupname.GetBuffer(20);
    hUsertree = m_viewlisttree.InsertItem(&tvInsert);
    m_viewlisttree.SetCheck(hUsertree);
    pHandlerDeviceRecordset->MoveNext();
    }
    m_viewlisttree.Expand(hUsertree,TVE_EXPAND);
    m_viewlisttree.ModifyStyle(0, TVS_NOHSCROLL);
            就这么写的
      

  5.   


    没什么问题。 示例:UINT uCount = m_TreeCtrl.GetVisibleCount();
    HTREEITEM hItem = m_TreeCtrl.GetFirstVisibleItem();// Toggle the check state of all the visible items.
    for (UINT i = 0; i < uCount; i++)
    {
       ASSERT(hItem != NULL);
       m_TreeCtrl.SetCheck(hItem, !m_TreeCtrl.GetCheck(hItem));
       hItem = m_TreeCtrl.GetNextVisibleItem(hItem);
    }