📄 tree.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 + -