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

📄 zl.cpp

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

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

/////////////////////////////////////////////////////////////////////////////
// zl dialog


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


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


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

/////////////////////////////////////////////////////////////////////////////
// zl message handlers



void zl::OnClickTree1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	
	*pResult = 0;
}
BOOL  zl::OnInitDialog() 
{
	CDialog::OnInitDialog();                  
	//--------------Tree控件操作变量-----------
	TVINSERTSTRUCT tvInsert;                   
   	HTREEITEM hParent;                         
	//------------------------------------------------
	tvInsert.hParent = NULL;                   
	tvInsert.hInsertAfter = NULL;              
	tvInsert.item.mask = TVIF_TEXT;

	//--------添加根目录----------------------------------------
	tvInsert.item.pszText=_T("输入输出轴之间的运动关系");
  
	HTREEITEM hTI1=m_tree1.InsertItem(&tvInsert);

	CString test0="平行";
    UCHAR node1[200];
	strcpy((char*)node1,(LPCSTR)test0);
	HTREEITEM hb=PopulateTree1(node1,hTI1);
	hasInd(node1,hb);
	CString test1="垂直";
    strcpy((char*)node1,(LPCSTR)test1);
    HTREEITEM li=PopulateTree1(node1,hTI1);
	hasInd(node1,li);      
	CString test2="异面";
    strcpy((char*)node1,(LPCSTR)test2);
	HTREEITEM liz=PopulateTree1(node1,hTI1);
	hasInd(node1,liz);      

    ////////////////////////////////////////        打开数据库
	    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_column4==0)
							 {
                                       
								 UCHAR parentnode1[250];
								 TVINSERTSTRUCT tvstruct; 
								 HTREEITEM  yb;
                                 strcpy((char*)parentnode1,(LPCTSTR)pMasterSet->m_column2);
							
	                             PopulateTree1(parentnode1,hb);
								 hasInd( parentnode1, hb);
								 
							 }                             
	                         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,liz);
									hasInd( parentnode1, liz);
							 }
                              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 zl::PopulateTree1(UCHAR node[200],HTREEITEM hTI2)
{
	HTREEITEM hTI = m_tree1. 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_tree1. InsertItem(&tvstruct);
    return hTI1;
}

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

void zl::OnOK() 
{
	// TODO: Add extra validation here
	HTREEITEM m_CurrentItem=m_tree1.GetSelectedItem();
    CString 	str=m_tree1.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);
                                   AfxMessageBox(pMasterSet->m_column6);
								   ads_printf("\nfilename=%s",filename);
								   ShellExecute(NULL,"open",(char*)filename,NULL,NULL,SW_SHOWNORMAL);
							 }        
							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 + -