⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tree.cpp

📁 本原代码集合了树形控件
💻 CPP
字号:
// tree.cpp : implementation file
//

#include "stdafx.h"
#include "hellor14.h"
#include "tree.h"
#include "pjset1.h"
#include "adslib.h"
#include "forbit.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// tree dialog


tree::tree(CWnd* pParent /*=NULL*/)
	: CDialog(tree::IDD, pParent)
{
	//{{AFX_DATA_INIT(tree)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}


void tree::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(tree)
	DDX_Control(pDX, IDC_TREE1, m_tree);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(tree, CDialog)
	//{{AFX_MSG_MAP(tree)
	ON_WM_CREATE()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// tree message handlers

BOOL tree::OnInitDialog() 
 
{
	CDialog::OnInitDialog();                   //初始化
	//--------------Tree控件操作变量------------------------
	TVINSERTSTRUCT tvInsert;                    ///定义..
   	//HTREEITEM hParent;                          //句柄是由操作系统定义的唯一的 Long 类型的值。可以用它来引用窗体和控件等对象
                                                   //句柄是一种标识符 (ID) 编号,而不是指针或者数字值;不要对它们进行数学运算。
//	HTREEITEM hParent1;
	//------------------------------------------------
	tvInsert.hParent = NULL;                   ///根目录
	tvInsert.hInsertAfter = NULL;              //Handle to the item after which the new item is to be inserted
	tvInsert.item.mask = TVIF_TEXT;

	//--------添加根目录----------------------------------------
	tvInsert.item.pszText=_T("用户名");
	
	HTREEITEM hTI1=m_tree.InsertItem(&tvInsert);
	CString test0="身份已确认";
    UCHAR node1[200];
	strcpy((char*)node1,(LPCSTR)test0);
	HTREEITEM li=PopulateTree1(node1,hTI1);
	hasInd(node1,li);
	   CString test="身份未确认";
	   strcpy((char*)node1,(LPCSTR)test);
	   HTREEITEM hb=PopulateTree1(node1,hTI1);
	   hasInd(node1,hb);

////////////////////////////////////////////////////
	    CString strDataName="pjset";
       	CDatabase db;
	    pjset1* pMasterSet = NULL;
	    CString m_column;

 try                                 
 {
		 if (db.Open(strDataName))
		 {
			     pMasterSet = new pjset1();///
			     pMasterSet->Open();///
//                 pMasterSet->MoveFirst;
	           


                 while (!pMasterSet->IsEOF())
				 {    
		                    
                         
	                         if(pMasterSet->m_column4==1)//////
							 {   
		                        UCHAR parentnode1[250];
								 //TVINSERTSTRUCT tvstruct; 
								 //HTREEITEM  yb;
										
								 strcpy((char*)parentnode1,(LPCTSTR)pMasterSet->m_column2);
							
	                             PopulateTree1(parentnode1,li);
									hasInd( parentnode1, li);
								 
	    
							 }
                             else
							 {  
		                        UCHAR parentnode1[250];
								// TVINSERTSTRUCT tvstruct; 
								 //HTREEITEM  yb;
										
								 strcpy((char*)parentnode1,(LPCTSTR)pMasterSet->m_column2);
							
	                             PopulateTree1(parentnode1,hb);
									hasInd( parentnode1, hb);
								 
	    
							 } pMasterSet->MoveNext();
                             
				}
	                       	pMasterSet->Close();
	                        delete pMasterSet;
	                     	db.Close();
		 }
 }

	catch(CDBException* pe)
{   
		   AfxMessageBox(pe->m_strError);			
		   if (pMasterSet)
		   {
			           if (pMasterSet->IsOpen())
					   {
				               pMasterSet->Close();
						}
			                   delete pMasterSet;
		   }
		                  if (db.IsOpen())
						 {
			                      db.Close(); 
						 }
		                          pe->Delete();
	}
		   return TRUE;  // return TRUE unless you set the focus to a control
		   // EXCEPTION: OCX Property Pages should return FALSE	   }
}
HTREEITEM tree::PopulateTree1(UCHAR node[200],HTREEITEM hTI2)
{
	HTREEITEM hTI = m_tree. GetRootItem();
	TV_INSERTSTRUCT tvstruct;
	tvstruct.hParent=hTI2;
	tvstruct.hInsertAfter = TVI_SORT;
	tvstruct.item.mask = TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_TEXT;
	const char * str=(LPCTSTR)node;
    tvstruct.item.pszText =(char*)str; 
	HTREEITEM hTI1=m_tree. InsertItem(&tvstruct);
    return hTI1;
}
void tree::hasInd(UCHAR parentnode1[250],HTREEITEM yb)
{

			TV_INSERTSTRUCT tvstruct;
		    tvstruct.hParent=yb;
	        tvstruct.hInsertAfter = TVI_SORT;
	        tvstruct.item.mask = TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_TEXT;
            HTREEITEM yy; 
	        yy=m_tree. InsertItem(&tvstruct);
}
void tree::OnOK() 
{
	// TODO: Add extra validation here
	HTREEITEM m_CurrentItem=m_tree.GetSelectedItem();
    CString str=m_tree.GetItemText(m_CurrentItem);
	ads_printf("\nstr=%s",str);
    CDialog::OnOK();
      	CDatabase db; 
		CString strDataName="pjset";
	if (db.Open(strDataName))
	{ 
	 forbit yy;
       if(yy.DoModal()==IDOK)
	   { 
	     if(yy.i==1)
		 {
		   AfxMessageBox("启用成功");
	        CString strSQL="UPDATE pjset SET 身份确认='1' WHERE 用户名='"+str+"'";
			db.ExecuteSQL(strSQL);
		 }
	     if(yy.i==0)
		 {   
		   AfxMessageBox("禁用成功");	
		   CString strSQL="UPDATE pjset SET 身份确认='0' WHERE 用户名='"+str+"'";
			db.ExecuteSQL(strSQL);
		 }
	   }
	db.Close();
	return;	
	}	
}
int tree::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CDialog::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	// TODO: Add your specialized creation code here
	
	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -