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

📄 zli.cpp

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

#include "stdafx.h"
#include "hellor14.h"
#include "zli.h"
#include  "ljbset.h"
#include "adslib.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// zli dialog


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


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


BEGIN_MESSAGE_MAP(zli, CDialog)
	//{{AFX_MSG_MAP(zli)
	ON_NOTIFY(NM_CLICK, IDC_TREE1, OnClickTree1)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// zli message handlers

void zli::OnClickTree1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	
	*pResult = 0;
}

BOOL zli::OnInitDialog() 

{
	  CDialog::OnInitDialog();                 
	//--------------Tree控件操作变量------------------------
	  TVINSERTSTRUCT tvInsert;                    
	//------------------------------------------------
	  tvInsert.hParent = NULL;                   
 	  tvInsert.hInsertAfter = NULL;             
	  tvInsert.item.mask = TVIF_TEXT;
	//--------添加根目录----------------------------------------
	   tvInsert.item.pszText=_T("运动功能");
       HTREEITEM hTI1=m_tree2.InsertItem(&tvInsert);
 	   CString ybtest="旋转—旋转";
       UCHAR node1[200];
       strcpy((char*)node1,(LPCSTR)ybtest);
	   HTREEITEM hb=PopulateTree1(node1,hTI1);
       hasInd(node1,hb);
	   CString test="旋转—平移";
       strcpy((char*)node1,(LPCSTR)test);
	   HTREEITEM li=PopulateTree1(node1,hTI1);
	   hasInd(node1,li);   
	   CString test1="平移—平移";
       strcpy((char*)node1,(LPCSTR)test1);
	   HTREEITEM li1=PopulateTree1(node1,hTI1);
	   hasInd(node1,li1);
       CString test2="螺旋—旋转";
       strcpy((char*)node1,(LPCSTR)test2);
	   HTREEITEM li2=PopulateTree1(node1,hTI1);
	   hasInd(node1,li2);
       CString test3="螺旋—平移";
       strcpy((char*)node1,(LPCSTR)test3);
	   HTREEITEM li3=PopulateTree1(node1,hTI1);
	   hasInd(node1,li3);
	   ////////////////////////////////////////        打开数据库
	   CString strDataName="李敬彬";
       CDatabase db;
	   ljbset* pMasterSet = NULL;
	   CString m_column;

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


                 while (!pMasterSet->IsEOF())
				{
		                     if(pMasterSet->m_column5==0)
							 {
                                       
								 UCHAR parentnode1[250];
								 TVINSERTSTRUCT tvstruct; 
								 HTREEITEM  yb;
                                 strcpy((char*)parentnode1,(LPCTSTR)pMasterSet->m_column2);							
	                             PopulateTree1(parentnode1,hb);
								 hasInd( parentnode1, hb);
								 
							 }                             
	                         if(pMasterSet->m_column5==1)
							 {
		                         UCHAR parentnode1[250];
								 TVINSERTSTRUCT tvstruct; 
								 HTREEITEM  yb;										
								 strcpy((char*)parentnode1,(LPCTSTR)pMasterSet->m_column2);							
	                             PopulateTree1(parentnode1,li);
							   	 hasInd( parentnode1, li);
								 
	    
							 }
                               if(pMasterSet->m_column5==2)
							 {
		                         UCHAR parentnode1[250];
								 TVINSERTSTRUCT tvstruct; 
								 HTREEITEM  yb;										
								 strcpy((char*)parentnode1,(LPCTSTR)pMasterSet->m_column2);							
	                             PopulateTree1(parentnode1,li1);
								 hasInd( parentnode1, li1);
								 
							   }

                            if(pMasterSet->m_column5==3)
							 {
		                         UCHAR parentnode1[250];
								 TVINSERTSTRUCT tvstruct; 
								 HTREEITEM  yb;		
								 strcpy((char*)parentnode1,(LPCTSTR)pMasterSet->m_column2);							
	                             PopulateTree1(parentnode1,li2);
								 hasInd( parentnode1, li2);
								 
							}

                                if(pMasterSet->m_column5==4)
							 {
		                         UCHAR parentnode1[250];
								 TVINSERTSTRUCT tvstruct; 
								 HTREEITEM  yb;									
								 strcpy((char*)parentnode1,(LPCTSTR)pMasterSet->m_column2);							
	                             PopulateTree1(parentnode1,li3);
								 hasInd( parentnode1, li3);
								}

                            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();
}
	 
//ShellExecuteA Cadsw_acadMainwnd(),open,(char*)filename,NULL,NULL,Sw_SHowNOKMA();

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}


HTREEITEM zli::PopulateTree1(UCHAR node[200],HTREEITEM hTI2)
{
	HTREEITEM hTI = m_tree2. 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_tree2. InsertItem(&tvstruct);
    return hTI1;
}

void zli::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_tree2. InsertItem(&tvstruct);
	
}

void zli::OnOK() 
{
	// TODO: Add extra validation here
    HTREEITEM	m_CurrentItem=m_tree2.GetSelectedItem();
    CString 	str=m_tree2.GetItemText(m_CurrentItem);
	ads_printf("\nstr=%s",str);
    CString strDataName="李敬彬";
   	CDatabase db;
    ljbset* pMasterSet = NULL;
    CString m_column;
try
{
     if (db.Open(strDataName))
	 {
			     pMasterSet = new ljbset();
			     pMasterSet->Open();
                 pMasterSet->MoveFirst;
                 while (!pMasterSet->IsEOF())
				{
		                     if(pMasterSet->m_column2==str)
							 {
                                  UCHAR filename[250];
                                  strcpy((char*)filename,(LPCTSTR)pMasterSet->m_column6);
                                  ShellExecute(NULL,"open",(char*)filename,NULL,NULL,SW_SHOWNA  );
							         
							 }
							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();
}
	 
	CDialog::OnOK();
}

⌨️ 快捷键说明

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