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

📄 ljbin.cpp

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

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

/////////////////////////////////////////////////////////////////////////////
// ljbin dialog


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


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


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

/////////////////////////////////////////////////////////////////////////////
// ljbin message handlers

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


BOOL  ljbin::OnInitDialog() 
{
	CDialog::OnInitDialog();                   
	//--------------Tree控件操作变量------------------------
	TVINSERTSTRUCT tvInsert;                   
   	HTREEITEM hParent;                          
   	//HTREEITEM hParent1;
	//------------------------------------------------
	tvInsert.hParent = NULL;                   
	tvInsert.hInsertAfter = NULL;              
	tvInsert.item.mask = TVIF_TEXT;

	//--------添加根目录----------------------------------------
	tvInsert.item.pszText=_T("机构特性");
  
	HTREEITEM hTI1=m_tree.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 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_column3==0)
							 {
                                       
								 UCHAR parentnode1[250];
								 TVINSERTSTRUCT tvstruct; 
								 HTREEITEM  yb;
                                 strcpy((char*)parentnode1,(LPCTSTR)pMasterSet->m_column2);
							
	                             PopulateTree1(parentnode1,hb);
								 hasInd( parentnode1, hb);
								 
							 }                             
	                         else
							 {
		                        UCHAR parentnode1[250];
								 TVINSERTSTRUCT tvstruct; 
								 HTREEITEM  yb;
								 strcpy((char*)parentnode1,(LPCTSTR)pMasterSet->m_column2);							
	                             PopulateTree1(parentnode1,li);
								 hasInd( parentnode1, li);								
							 }
                              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 ljbin::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 ljbin::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 ljbin::OnOK() 
{
	// TODO: Add extra validation here
	HTREEITEM m_CurrentItem=m_tree.GetSelectedItem();
    CString str=m_tree.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);
   								 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 + -