📄 computerchangedlg.cpp
字号:
// ComputerChangeDlg.cpp : implementation file
//
#include "stdafx.h"
#include "Kill.h"
#include "ComputerChangeDlg.h"
#include "MainFrm.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CComputerChangeDlg dialog
CComputerChangeDlg::CComputerChangeDlg(CWnd* pParent /*=NULL*/)
: CDialog(CComputerChangeDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CComputerChangeDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
CoInitialize(NULL);
// AfxOleInit();
// m_db.CreateInstance(__uuidof(Connection));
HRESULT hRes;
try
{
hRes=m_db.CreateInstance(_T("ADODB.Connection"));
m_db->ConnectionTimeout = 8;
//连接ACCESS2000
hRes=m_db->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=DataBase\\KillData.mdb",
_T(""),_T(""),adModeUnknown);
}
catch(_com_error e)///捕捉异常
{
CString errormessage;
errormessage.Format(_T("连接KillData.mdb数据库失败!\r\n错误信息:%s"),e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
}
}
void CComputerChangeDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CComputerChangeDlg)
DDX_Control(pDX, IDC_CHANGE_TREE, m_ChangeTreeCtrl);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CComputerChangeDlg, CDialog)
//{{AFX_MSG_MAP(CComputerChangeDlg)
ON_NOTIFY(NM_DBLCLK, IDC_CHANGE_TREE, OnDblclkChangeTree)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CComputerChangeDlg message handlers
void CComputerChangeDlg::OnDblclkChangeTree(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
HTREEITEM hTreeCurrent;//当前和父级项句柄
hTreeCurrent=m_ChangeTreeCtrl.GetSelectedItem ();
CMainFrame *pMain=(CMainFrame *)AfxGetMainWnd();
pMain->m_ClientInfoview->ChangeParent(m_ComputerId,"abc",m_ChangeTreeCtrl.GetItemData(hTreeCurrent));
*pResult = 0;
}
void CComputerChangeDlg::AddSubTree(int ParTree, CString strChildTree, HTREEITEM hPartItem)
{
if (strChildTree=="0")
return ;
//----------------使用到的变量进行定义----------
_RecordsetPtr m_pTreeRecordset; //用于创建一个查询记录集
_variant_t vChild;
//--------------Tree控件操作变量------------------------
HTREEITEM hCurrent;
//----------------------------------------------
CString strSQL,strCurItem;
//-----------------------------------------------
strSQL.Format("SELECT * FROM ComputerGroups where ParentComputerGroupid = %d",ParTree );
_variant_t varSQLtcp(strSQL);
try
{
HRESULT hTRes;
hTRes = m_pTreeRecordset.CreateInstance(_T("ADODB.Recordset"));
if (SUCCEEDED(hTRes))
{
//----------------------------------------------------
hTRes = m_pTreeRecordset->Open(varSQLtcp,
_variant_t((IDispatch *)m_db,true),
adOpenStatic,adLockOptimistic,adCmdText);
// adOpenDynamic,adLockPessimistic,adCmdText); //这个为什么不行,还要考虑
if(SUCCEEDED(hTRes))
{
TRACE(_T("连接成功!\n"));
//------------------------------------------
if (!(m_pTreeRecordset->adoEOF))
{
m_pTreeRecordset->MoveFirst();
// m_ChangeTreeCtrl.SetItemImage(hPartItem,1,true );
}
if (m_pTreeRecordset->GetRecordCount()>0)
{
for(int i=0;i<m_pTreeRecordset->GetRecordCount(); i++)
// while (!(m_pTreeRecordset->adoEOF))
{
hCurrent = m_ChangeTreeCtrl.InsertItem((LPCTSTR)(_bstr_t)\
(m_pTreeRecordset->GetCollect("ComputerGroupName")), hPartItem, NULL);
m_ChangeTreeCtrl.SetItemData(hCurrent, m_pTreeRecordset->GetCollect("ComputerGroupId").intVal );
AddSubTree(m_pTreeRecordset->GetCollect("ComputerGroupId").intVal,
m_pTreeRecordset->GetCollect("ComputerGroupName").bstrVal,
hCurrent);
if (!(m_pTreeRecordset->adoEOF))
m_pTreeRecordset->MoveNext();
}
}
//---------------------------------------
}
}
}
catch(_com_error e)///捕捉异常
{
CString errormessage;
MessageBox("创建City记录集失败!",strChildTree);
}
}
void CComputerChangeDlg::AddTree()
{
//--------------Tree控件操作变量------------------------
TVINSERTSTRUCT tvInsert;
HTREEITEM hParent;
//------------------------------------------------
tvInsert.hParent = NULL;
tvInsert.hInsertAfter = NULL;
tvInsert.item.mask = TVIF_TEXT;
//--------添加根目录----------------------------------------
tvInsert.item.pszText = _T("组织");
hParent = m_ChangeTreeCtrl.InsertItem(&tvInsert);
m_ChangeTreeCtrl.SetItemImage(hParent,1,true );
//---------------添加子目录-------------------------------
AddSubTree(1,"1",hParent);
//---------------------展开Tree目录------------------
m_ChangeTreeCtrl.Expand(hParent,TVE_EXPAND);
}
BOOL CComputerChangeDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_TreeBootImage.Create ( IDB_BITMAP_TREE,18,1,ILC_COLOR8);
// m_TreeBootImage.Create ( IDB_TreeBootImage,20,1,ILC_COLOR8);
m_ChangeTreeCtrl.SetImageList ( &m_TreeBootImage,TVSIL_NORMAL );
// m_ChangeTreeCtrl.SetTextColor (RGB(7,145,13));
// TODO: Add extra initialization here
AddTree();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CComputerChangeDlg::OnOK()
{
// TODO: Add extra validation here
HTREEITEM hTreeCurrent;//当前和父级项句柄
hTreeCurrent=m_ChangeTreeCtrl.GetSelectedItem ();
CMainFrame *pMain=(CMainFrame *)AfxGetMainWnd();
pMain->m_ClientInfoview->ChangeParent(m_ComputerId,m_ComputerIP,m_ChangeTreeCtrl.GetItemData(hTreeCurrent));
CDialog::OnOK();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -