2 qq 28254507 qq_28254507 于 2016.02.15 16:16 提问

mfc 树形结构如何去掉默认选中?
 void TreeView::OnInitialUpdate()
{
    CTreeView::OnInitialUpdate();
    TVINSERTSTRUCT ti = { 0 };
    HTREEITEM hParent, Parent;
    ptheTree = &GetTreeCtrl();
    ptheTree->ModifyStyle(0, TVS_HASLINES | TVS_EDITLABELS);
    //TreeView* m_pMyView = (TreeView*)m_wndSplitter.GetPane(0, 0);
    HIMAGELIST himl;   //加入图标  
    himl = ImageList_Create(27, 27, ILC_COLOR24, 1, 12);
    ImageList_Add(himl, LoadBitmap(AfxGetApp()->m_hInstance, MAKEINTRESOURCE(IDB_BITMAP10)), NULL);
    SendMessage(TVM_SETIMAGELIST, TVSIL_NORMAL, (LPARAM)himl);

    ti.item.mask = TVIF_TEXT | TCIF_IMAGE | TVIF_SELECTEDIMAGE;
    ti.item.iImage = 2;
    ti.item.iSelectedImage = 2;
    ti.item.pszText = _T("默认文件夹");
    ti.hParent = NULL;
    ti.hInsertAfter = TVI_ROOT;

    Parent = hParent = (HTREEITEM)SendMessage(TVM_INSERTITEM, 0, (LPARAM)&ti);

    ti.hParent = hParent;
    ti.hInsertAfter = TVI_LAST;//TVI_LAST表示节点添加在最后  
    ti.item.iImage = 0;
    ti.item.iSelectedImage = 0;
    ti.item.pszText = _T("默认笔记本");
    hParent = (HTREEITEM)SendMessage(TVM_INSERTITEM, 0, (LPARAM)&ti);

    ti.item.iImage = 3;
    ti.item.iSelectedImage = 3;
    ti.item.pszText = _T("回收站");
    ti.hParent = NULL;
    ti.hInsertAfter = TVI_ROOT;
    Parent = hParent = (HTREEITEM)SendMessage(TVM_INSERTITEM, 0, (LPARAM)&ti);

    // TODO:  在此添加专用代码和/或调用基类
}

是哪里初始化的不对吗?
我试过在初始化里放SelectItem(NULL);没有用。。

2个回答

caozhy
caozhy   Ds   Rxr 2016.02.16 07:49
已采纳
  CTreeCtrl::SetItemState(lhItem, 0, TVIS_SELECTED);
qq_28254507
qq_28254507 放在双击消息函数就可以了。感谢!
2 年多之前 回复
qq_28254507
qq_28254507 我放在了OnInitialUpdate()末尾,结果还是选中的。。
2 年多之前 回复
caozhy
caozhy   Ds   Rxr 2016.02.16 07:49

lhItem为你要去掉的item的句柄

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
VS2013 MFC checkbox 控件默认选中
方法一:      设该CheckBox控件ID为IDC_CHECK1,      在Dialog类的OnInitDialog函数中//TODO处添加代码:      ((CButton*)GetDlgItem(IDC_CHECK1))->SetCheck(BST_CHECKED);      方法二:      为该控件添加BOOL值型控件成员变量m_Check1,在Dialog类的构
ComboBox控件,通过SetCurSel()默认选中第一项
这两天用到ComboBox控件,需要在程序一运行便默认选择下拉菜单中的第一项。 //*********主对话框OnInitDialog()函数中初始化************* m_ctrlComboComPort.SetCurSel(0); //初始默认选择串口1 //初始化ComboBox控件下拉菜单内容 CString strTemp; ((CComboBox*)GetDlgIte
MFC找到TreeControl选中标签的索引值
MFC里的treectrl没有索引值,因为节点的关系不一定是并列的兄弟关系,可能是父子关系或者说根与叶的关系。 简单的序号是不能标志它们的。节点的唯一标志用的节点句柄 HTREEITEM; 如果想给每个节点编个号,就首先用SetItemData()给每个节点绑定一个唯一的整数。 然后, HTREEITEM item=CTreeCtrl::GetSelectedIte
VS2008的MFC中CtreeCtrl默认选中第一个子节点
第一步: hThermalItemOne = m_treeThermal.GetChildItem(hRootThermal);//表示第一分类节点的句柄 if(m_treeThermal) { m_treeThermal.SelectItem(hThermalItemOne);//选中 } 第二步: 设置CtreeCtrl的属性Always Show Selection为:True
MFC中CTreeCtrl展开树形列表节点
void CMenuCreatDlg::OnMENUITEMexpandtree() //展开所有节点 { // TODO: Add your command handler code here MyExpandTree(m_tree.GetRootItem()); } void CMenuCreatDlg::MyExpandTree(HTREEITEM hTreeItem
MFC学习--单选框默认设置
单选钮用来表示一系列的互斥选项,这些互斥项常常被分成若干个组,每组仅允许用户选择一个选项;复选框与单选按钮相象,不同之处是复选框代表多重选择,用户可以选择一个或多个选项。 对话框编辑器中各组控件的对齐 按下Ctrl键并单击要对齐的各个控件,同时选中。最后选中的控件是对齐的基准,仔细观察,它周围的8个小方框是实心的,而其它被选控件周围的小方框是空心的。在Layout菜单中选择Make Same Si
jq实现循环遍历树形结构的CheckBox根据父级选中子级
首先贴一张需要实现是效果图(这树形结构用的是easyui的),这效果是用jq实现的,数据是后台查询出来,并实例化到前台,再循环遍历 后台查询出来的数据本来是这样的: 这样的二维数组是不够的,需要我们处理一下: $newarray = array(); foreach ($list as $data){ $rolena
MFC radio button如何默认选中
我们假设有两个RADIO控件:IDC_RADIO_SINGLE和IDC_RADIO_RANGE,我们的目的是默认选种IDC_RADIO_SINGLE控件。 方法一: CheckRadioButton(IDC_RADIO_SINGLE,IDC_RADIO_RANGE,IDC_RADIO_SINGLE); 方法二: 将IDC_RADIO_SINGLE设置为有Group属性,ID
MFC ComboBox怎么设置默认项
这是在类的OnInitDlg()中 this->m_Combo.AddString("A"); this->m_Combo.AddString("B"); this->m_Combo.AddString("O"); this->m_Combo.AddString("AB"); this->m_Combo.AddString("其他"); 那么问题来了 现在程序运行时能进行血型选择 但是默认
Radiobutton去掉默认选中圆圈的问题
方法很简单、就是把radiobutton加上属性 android:button="@null"!这样基本就解决问题了、至少我在米4上看是没什么问题了!然而我在小米2s上测试时发现、圆圈是看不见了、但是那圆圈的位置还占着、就和visibility设置了invisible属性一样!最后把background也设置了@null就好了!记录。。。。