树控件加这个属性TVN_BEGINDRAG

mirro187_ 2013-04-15 11:09:47

DWORD dwViewStyle = WS_CHILD|WS_VISIBLE|TVS_HASBUTTONS|TVS_HASLINES|TVS_LINESATROOT|TVS_TRACKSELECT|TVS_EDITLABELS;
CRect rectDummy ;
GetClientRect(rectDummy);
if(!m_DeviceTree.Create(dwViewStyle,rectDummy,this,TreeID))
{
TRACE0("未能创建类视图\n");
return ; // 未能创建
}

...全文
385 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
schlafenhamster 2013-04-17
  • 打赏
  • 举报
回复
“进行自绘处理” Tree 的 完全 自绘 很麻烦的,通常 用 tree的 CustomDraw 就 可以 了。 要自己加: h afx_msg void OnCustDrawTree(NMHDR *pNMHRD,LRESULT *pResult) event ON_NOTIFY_REFLECT(NM_CUSTOMDRAW,OnCustDrawTree); cpp ON_NOTIFY_REFLECT(NM_CUSTOMDRAW,OnCustDrawTree) { ... } 上面是可用代码 完全自绘,吃力不讨好。
mirro187_ 2013-04-17
  • 打赏
  • 举报
回复
搞下嘛
引用 18 楼 schlafenhamster 的回复:
CTreeView 里本身有 一个 CustomDraw 不能用吗 ? 在CTreeView里 再加一个 Tree 没搞过。
mirro187_ 2013-04-17
  • 打赏
  • 举报
回复
晕 我要进行自绘处理呀!当然不能用本身的了 单击消息能响应 就这个消息不能响应 与是不是本身的关系大吗????
引用 18 楼 schlafenhamster 的回复:
CTreeView 里本身有 一个 CustomDraw 不能用吗 ? 在CTreeView里 再加一个 Tree 没搞过。
schlafenhamster 2013-04-17
  • 打赏
  • 举报
回复
CTreeView 里本身有 一个 CustomDraw 不能用吗 ? 在CTreeView里 再加一个 Tree 没搞过。
mirro187_ 2013-04-17
  • 打赏
  • 举报
回复
我树控件的按下消息 都能收到 就是这个消息收不到 是不是少什么属性
引用 15 楼 schlafenhamster 的回复:
对 view里 tree 使用子类化 你 没有办法 直接 连接一个tree 到 treeview 要不就用 view (你并不要他的 tree)
mirro187_ 2013-04-17
  • 打赏
  • 举报
回复
晕 !我创建一个咋不行啊!!!!!!!!!!!!!!!! 帮我看看吧
引用 15 楼 schlafenhamster 的回复:
对 view里 tree 使用子类化 你 没有办法 直接 连接一个tree 到 treeview 要不就用 view (你并不要他的 tree)
schlafenhamster 2013-04-17
  • 打赏
  • 举报
回复
我试了: void CTreeTest::OnItemexpanded(NMHDR* pNMHDR, LRESULT* pResult) { NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR; // TODO: Add your control notification handler code here afxDump << "OnItemexpanded\n"; *pResult = 0; } 也·不·响应 !!!
schlafenhamster 2013-04-17
  • 打赏
  • 举报
回复
“我程序已经加好了;还有功能代码! 不好改啊” 再研究研究看吧。
schlafenhamster 2013-04-17
  • 打赏
  • 举报
回复
“子类化CTreeView中的CTreeCtrl控件” http://blog.chinaunix.net/uid-8193682-id-2513440.html
mirro187_ 2013-04-17
  • 打赏
  • 举报
回复
我程序已经加好了;还有功能代码! 不好改啊 到底怎么处理可以收到TVN_BEGINDRAG消息啊!!!!树控件按下消息都能收到
引用 21 楼 schlafenhamster 的回复:
“进行自绘处理” Tree 的 完全 自绘 很麻烦的,通常 用 tree的 CustomDraw 就 可以 了。 要自己加: h afx_msg void OnCustDrawTree(NMHDR *pNMHRD,LRESULT *pResult) event ON_NOTIFY_REFLECT(NM_CUSTOMDRAW,OnCustDrawTree); ……
mirro187_ 2013-04-16
  • 打赏
  • 举报
回复
晕 我是自绘的呀!!!!!
引用 7 楼 schlafenhamster 的回复:
"树视图里创建一个树控件" SDK 中 树视图就 是 树控件 不用再创建
schlafenhamster 2013-04-16
  • 打赏
  • 举报
回复
"树视图里创建一个树控件" SDK 中 树视图就 是 树控件 不用再创建
mirro187_ 2013-04-16
  • 打赏
  • 举报
回复
我树视图里创建一个树控件;无法响应此消息呀 我在对话框拖拽一个树控件;可以响应此消息 我树视图里添加 原本是在树控件里这个消息ON_NOTIFY_REFLECT(TVN_BEGINDRAG, &CTreeCtrlEx::OnTvnBegindrag) 改成ON_NOTIFY(TVN_BEGINDRAG,treeID,&CTreeview::OnTvnBegindrag);换成你的创建属性也无法响应呀
引用 5 楼 schlafenhamster 的回复:
下载“完善版TreeTwo.rar” http://download.csdn.net/detail/schlafenhamster/2960001 case WM_NOTIFY: switch( ((LPNMHDR)lParam)->code) { case TVN_BEGINDRAG:// The user wants to drag an item……
schlafenhamster 2013-04-16
  • 打赏
  • 举报
回复
对 view里 tree 使用子类化 你 没有办法 直接 连接一个tree 到 treeview 要不就用 view (你并不要他的 tree)
mirroatl256 2013-04-16
  • 打赏
  • 举报
回复
我要使用派生类的呀!!!!!派生处理的代码我去掉了。我知道里面原来有一个啊
引用 13 楼 schlafenhamster 的回复:
tree的style可以改成: CTreeCtrl &tree=GetTreeCtrl();//WS_VISIBLE | WS_CHILD | WS_DLGFRAME | const DWORD dwViewStyle = TVS_HASLINES | TVS_HASBUTTONS | TVS_LINESATROOT; tree.ModifyStyl……
schlafenhamster 2013-04-16
  • 打赏
  • 举报
回复
tree的style可以改成: CTreeCtrl &tree=GetTreeCtrl();//WS_VISIBLE | WS_CHILD | WS_DLGFRAME | const DWORD dwViewStyle = TVS_HASLINES | TVS_HASBUTTONS | TVS_LINESATROOT; tree.ModifyStyle(0,dwViewStyle); tree.SetImageList(&m_pImageList,TVSIL_NORMAL);
schlafenhamster 2013-04-16
  • 打赏
  • 举报
回复
1. 给你说 CTreeView 有一个 CTreeCtrl ,不听 非要 创建一个:我改了: // CDevTree 消息处理程序 int sign = 0; void CDevTree::OnInitialUpdate() { CTreeView::OnInitialUpdate(); // const DWORD dwViewStyle = WS_VISIBLE | WS_CHILD | WS_DLGFRAME | TVS_HASLINES | // TVS_HASBUTTONS | TVS_LINESATROOT; // tree.ModifyStyle(0,dwViewStyle); CRect rectDummy ; GetClientRect(rectDummy); // if(!Obj.Create(dwViewStyle,rectDummy,this,TreeID)) // { // TRACE0("未能创建类视图\n"); // return ; // 未能创建 // } m_pImageList.Create(16,16,ILC_COLOR24|ILC_MASK,0,1); m_pImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON1)); m_pImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON2)); m_pImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON3)); // CTreeCtrl &tree=GetTreeCtrl(); tree.SetImageList(&m_pImageList,TVSIL_NORMAL); TVINSERTSTRUCT tv; TVITEMEX tvMex; tvMex.mask=TVIF_DI_SETITEM|TVIF_HANDLE|TVIF_IMAGE|TVIF_TEXT|TVIF_SELECTEDIMAGE; tvMex.pszText="****县"; tvMex.iImage=0; tvMex.iSelectedImage=1; tvMex.cChildren=1; tvMex.lParam=NULL; tvMex.iIntegral=1; tv.hInsertAfter=TVI_ROOT; tv.hParent=NULL; tv.itemex=tvMex; HTREEITEM hRoot=tree.InsertItem(&tv); int nItemCount=3; for (int i=0; i<3; i++) { tv.hParent=hRoot; tv.hInsertAfter=TVI_LAST; tvMex.pszText="控制台"; tvMex.iImage= 1; tvMex.iSelectedImage=1; tv.itemex=tvMex; HTREEITEM hItem=tree.InsertItem(&tv); tv.hParent=hItem; //改变父节点 tvMex.iImage= 2; tvMex.iSelectedImage=0; tv.itemex=tvMex; tv.itemex.pszText="摄像机"; HTREEITEM tempItem; tempItem=tree.InsertItem(&tv); tree.Expand(hItem,TVE_EXPAND); } tree.Expand(hRoot ,TVE_EXPAND); // TODO: 在此添加专用代码和/或调用基类 sign = 1; } 2. 因为 treectrl 在 view 里 所以 要用: afx_msg void OnTvnBegindrag(NMHDR *pNMHDR, LRESULT *pResult); BEGIN_MESSAGE_MAP(CDevTree, CTreeView) ON_WM_SIZE() ON_NOTIFY_REFLECT(TVN_BEGINDRAG, OnTvnBegindrag) // ON_NOTIFY(TVN_BEGINDRAG,TreeID,OnTvnBegindrag) END_MESSAGE_MAP() void CDevTree::OnTvnBegindrag(NMHDR *pNMHDR, LRESULT *pResult) { LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR); // TODO: 在此添加控件通知处理程序代码 afxDump << "OnTvnBegindrag\n" ; *pResult = 0; } // 那个 obj 删除了。
schlafenhamster 2013-04-16
  • 打赏
  • 举报
回复
“上传了”给个连接?
mirro187_ 2013-04-16
  • 打赏
  • 举报
回复
上传了 看信息
引用 9 楼 schlafenhamster 的回复:
SDK 中 树视图就 是 树控件 MFC 中 树视图包含 树控件 不用再创建 “晕 我是自绘的呀” 把你的类 传上来,都被你 搞 “晕”了
schlafenhamster 2013-04-16
  • 打赏
  • 举报
回复
SDK 中 树视图就 是 树控件 MFC 中 树视图包含 树控件 不用再创建 “晕 我是自绘的呀” 把你的类 传上来,都被你 搞 “晕”了
加载更多回复(5)

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧