MFC使用小结(二)CTreeView的麻烦

本文总结了在MFC中使用CTreeView遇到的难点,包括双击事件的添加、右键弹出菜单的实现以及左键点击选中的处理。作者分享了在VS IDE中自动添加事件的方法,并提供了部分代码示例。文章预告将探讨SDI文档中动态创建CScrollView及列优先排列功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

初次接触CTreeView有点不知从哪下手的感觉,网上查了一堆资料也还是有点懵,这经过几天的折磨,总算有点眉目了。

具体的使用我就不废话了,网上很多资料的,我就挑几个最麻烦的记录一下吧。

 

1.双击事件

整了一顿,愣是没找到事件在哪。最后,也是受前辈指点,在类这一栏里,属性,事件里,可以自动添加事件……VS的IDE还是挺强大的嘛。

废话少说,上代码,其中的TreeData是我自定义的一个结构体,用来保存第三方数据(也就是我们自己需要用的数据比如IP,端口什么的)的,可以无视之。

void CLeftView::OnNMDblclk(NMHDR *pNMHDR, LRESULT *pResult)
{
	// TODO: 在此添加控件通知处理程序代码
	CTreeCtrl &pTreeCtrl = GetTreeCtrl();
	HTREEITEM hSelect = pTreeCtrl.GetSelectedItem();
	TreeData* td = (TreeData *)pTreeCtrl.GetItemData(hSelect);
	if(td){
		if(td->type == 2){
			if(td->UserData.mLineStatus != L"1"){
				AfxMessageBox(L"该用户不在线,无法进行连接请求,请稍后再试。");
			}else{
				AfxGetMainWnd()->SendMessage(WM_CONNECT_SERVER, (WPARAM)td, 0);
			}
		}
	}else{
		AfxMessageBox(L"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值