树节点 数据库 我将窗口切分为左右两侧,左侧为树控件,右侧为列表控件,现在调用数据库中数据的方法建立了树节点, 在点击树节点时 ,调用数据库中的数据显示在list列表中,有哪位知道该怎么实现呀 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 CodeProject上面有个CHtmlTree有相关的实现,楼主可以参考下...你所描述的是个很简单的过程 ON_NOTIFY(NM_CLICK, IDC_TREE_SELECT, OnClickTree) ON_NOTIFY(NM_DBLCLK, IDC_TREE_SELECT, OnDblclkTree)//鼠标双击树void CSelectUserDlg::OnDblclkTree(NMHDR* pNMHDR, LRESULT* pResult) { HTREEITEM htm=m_tree_select.GetSelectedItem(); if(htm && !m_tree_select.ItemHasChildren(htm)) { if(CheckClick()) OnButtonAdd(); } m_pBBDel->SetEnable(FALSE); RefreshItemImage(); *pResult = 0;}// 鼠标单击树void CSelectUserDlg::OnClickTree(NMHDR *pNMHDR,LRESULT *pResult){ POINT pt; ::GetCursorPos(&pt); m_tree_select.ScreenToClient(&pt); UINT flag; HTREEITEM htm=m_tree_select.HitTest(pt,&flag); if(htm) { // 展开树 if(m_tree_select.GetParentItem(htm)==NULL && (flag )) { if(TVIS_EXPANDED & m_tree_select.GetItemState(htm,TVIS_EXPANDED)) { if(htm!=m_hNotifyItem) { m_tree_select.Expand(htm,TVE_COLLAPSE); } } else { if(htm!=m_hNotifyItem) { m_tree_select.Expand(htm,TVE_EXPAND); } } PostMessage(UM_USERLIST_SEL,1); } //选中某条 else { PostMessage(UM_USERLIST_SEL,0); } } m_pBBDel->SetEnable(FALSE); RefreshItemImage(); *pResult =0;} OnButtonAdd();用于实现右侧列表添加功能 对话框无法接收ListBox的任何消息 GetQueueStatus() 函数无效问题 如何得以一个点的R值,G值,B值,是分开的 如何在使用socket的send之前判断缓冲区是否已满 dropdown类型的ComboBox不能正常取值~ 程序源代码中的繁体字如何正确显示啊? BSTR在使用过程中为什么会内存泄露呢? 使用CreateProcess时的一点小问题 谁了解株式会社世界能源这家公司呢 一个很简单的WTL的问题? GetConsoleWindow得到hWnd可以用来画图吗? 画到哪里去了? VC6:ANSI工程向UNICODE工程转移,原先的代码需要作什么变化?
ON_NOTIFY(NM_CLICK, IDC_TREE_SELECT, OnClickTree)
ON_NOTIFY(NM_DBLCLK, IDC_TREE_SELECT, OnDblclkTree)
//鼠标双击树
void CSelectUserDlg::OnDblclkTree(NMHDR* pNMHDR, LRESULT* pResult)
{
HTREEITEM htm=m_tree_select.GetSelectedItem();
if(htm && !m_tree_select.ItemHasChildren(htm))
{
if(CheckClick()) OnButtonAdd();
}
m_pBBDel->SetEnable(FALSE);
RefreshItemImage();
*pResult = 0;
}
// 鼠标单击树
void CSelectUserDlg::OnClickTree(NMHDR *pNMHDR,LRESULT *pResult)
{
POINT pt;
::GetCursorPos(&pt);
m_tree_select.ScreenToClient(&pt);
UINT flag;
HTREEITEM htm=m_tree_select.HitTest(pt,&flag);
if(htm)
{
// 展开树
if(m_tree_select.GetParentItem(htm)==NULL && (flag ))
{
if(TVIS_EXPANDED & m_tree_select.GetItemState(htm,TVIS_EXPANDED))
{
if(htm!=m_hNotifyItem)
{
m_tree_select.Expand(htm,TVE_COLLAPSE);
}
}
else
{
if(htm!=m_hNotifyItem)
{
m_tree_select.Expand(htm,TVE_EXPAND);
}
}
PostMessage(UM_USERLIST_SEL,1);
}
//选中某条
else
{
PostMessage(UM_USERLIST_SEL,0);
}
}
m_pBBDel->SetEnable(FALSE);
RefreshItemImage();
*pResult =0;
}
用于实现右侧列表添加功能