树控件显示气泡以及子项的排序

 由于现在好菜,下面写一个最简单的树节点排序以及显示气泡的程序:

对于气泡的显示:

1.声明一个成员变量:CToolTipCtrl* m_pToolTipCtrl;

2.在构造函数中:

 m_pToolTipCtrl = new CToolTipCtrl;
 if   (!m_pToolTipCtrl-> Create(this,   TTS_ALWAYSTIP))
 {
  TRACE(_T( "Unable   To   create   ToolTip\n "));
 }
 m_pToolTipCtrl->Activate(TRUE);

最好不要再OnintDlg中写以上代码,哥以及尝过一次苦头了,有的时候行,有的时候不行,在构造函数里面万无一失。

3.顺带在析构函数中把它干掉

 if(m_pToolTipCtrl != NULL)
 {
  delete m_pToolTipCtrl;
  m_pToolTipCtrl = NULL;
 }

4.插入子节点,排序,并加入气泡

HTREEITEM CConfigurationToolDlg::AddDeviceItem(CString strName)
{
 CRect rect;
 HTREEITEM hSubItem;
 TV_ITEM tvItem;
 TV_INSERTSTRUCT tvIns;
 
 tvItem.mask = TVIF_TEXT  | TVIF_PARAM | TVIF_IMAGE| TVIF_SELECTEDIMAGE  ;
 int nLength = strName.GetLength();
 
 tvItem.pszText = strName.GetBuffer(nLength);
 tvItem.cchTextMax = nLength;
 
  tvItem.iImage = 1;
  tvItem.iSelectedImage = 1;
 tvItem.cChildren = 1;
 tvIns.item = tvItem;
 tvIns.hInsertAfter = TVI_LAST;
 tvIns.hParent = TVI_ROOT  ;

 hSubItem = m_DevTree.InsertItem(&tvIns);

  m_DevTree.SortChildren(TVI_ROOT); //排序


 m_DevTree.GetItemRect(hSubItem,&rect,TRUE); //

 m_pToolTipCtrl->AddTool(&m_DevTree,m_strName,&rect,m_uCout);//
 m_uCout++;                             //int类型
 m_DevTree.Expand(m_hRoot, TVE_EXPAND);
   
 return hSubItem; 
}

5.在消息中显示气泡

BOOL CConfigurationToolDlg::PreTranslateMessage(MSG* pMsg)
{
 // TODO: Add your specialized code here and/or call the base class
 if(pMsg->message ==  WM_KEYDOWN)
 {
  if(0xD == pMsg->wParam)
  {
      return FALSE;
  }
 }

 if(m_pToolTipCtrl) //
  m_pToolTipCtrl->RelayEvent(pMsg); //
 return CDialog::PreTranslateMessage(pMsg);
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值