tablepackage.cpp
来自「本人买的<<VC++项目开发实例>>源代码配套光盘.」· C++ 代码 · 共 172 行
CPP
172 行
// TablePackage.cpp: implementation of the CTablePackage class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "DBExp.h"
#include "TablePackage.h"
#include "CDBExpDatabase.h"
#include "CDBTreeNode.h"
#include "mainfrm.h"
#include "..\DLLs\TableFunc\Tableparamdef.h"
#include "DLLFuncs.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
//##ModelId=3C5B9B9F003B
CTablePackage::CTablePackage()
{
}
//##ModelId=3C5B9B9F003C
CTablePackage::~CTablePackage()
{
}
//##ModelId=3C5B9B9F003E
const char *CTablePackage::GetTreeNodeCaption()
{
static char szCaption[] = _T("数据表包");
return szCaption;
}
//##ModelId=3C5B9B9F0045
BOOL CTablePackage::ExpandItem(HTREEITEM hItem, UINT state)
{
HTREEITEM hTempItem = 0;
CWaitCursor wait;
CDBExpDatabase *pDatabase = GetDatabase();
ASSERT(pDatabase);
CTypedPtrList<CObList, CDBTreeNode *> *pList = NULL;
if(pDatabase->m_ObStruct[CDBExpDatabase::OBS_TABLE].bHasExpanded)
return TRUE;
pDatabase->EnumObjects(ADODB::adSchemaTables, "TABLE");
pList = &pDatabase->m_ObStruct[CDBExpDatabase::OBS_TABLE].m_List;
POSITION pos = pList->GetHeadPosition();
while(NULL != pos)
{
CDBTreeNode *pNode;
pNode = (CDBTreeNode *)pList->GetNext(pos);
pNode ->BuildTVITEM(hItem);
hTempItem = m_pTreeCtrl->InsertItem(&pNode->m_tvInsertStruct);
ASSERT(hTempItem);
pNode->Set_hItem(hTempItem);
}
return TRUE;
}
//##ModelId=3C5CCC5B0307
BOOL CTablePackage::OpenRelatedView(LPARAM lParam)
{
// ToDo: Add your specialized code here
CMainFrame *pFrame = (CMainFrame *)AfxGetMainWnd();
CListView *pListView = (CListView *)pFrame->GetRightPane();
CDBExpDatabase *pDatabase = this->GetDatabase();
ASSERT(pDatabase);
pListView->GetListCtrl().DeleteAllItems();
int& nCount = ResetListViewItemCounter();
POSITION pos = pDatabase->m_ObStruct[0].m_List.GetHeadPosition();
CDBTreeNode *pTreeNode = NULL;
while(pos != NULL)
{
pTreeNode = pDatabase->m_ObStruct[0].m_List.GetAt(pos);
pTreeNode->BuildLVITEM(nCount);
pListView->GetListCtrl().InsertItem(&pTreeNode->m_lvInsertStruct);
pDatabase->m_ObStruct[0].m_List.GetNext(pos);
}
return TRUE;
}
//##ModelId=3C6288520091
void CTablePackage::BuildTVITEM(HTREEITEM hParentItem)
{
// ToDo: Add your specialized code here or after the call to base class
CPackageNode::BuildTVITEM(hParentItem);
}
//##ModelId=3C6288530149
BOOL CTablePackage::PopupContextMenu(DBTREE_NODE_CONTEXT& context)
{
// ToDo: Add your specialized code here or after the call to base class
return CPackageNode::PopupContextMenu(context);
}
//##ModelId=3C62885102DE
void CTablePackage::BuildContextMenu(DBTREE_NODE_CONTEXT& context)
{
// ToDo: Add your specialized code here or after the call to base class
m_pContextMenu->LoadMenu(IDR_MENU_PKG_TABLE);
}
//##ModelId=3C62885203BC
void CTablePackage::OnMenuItemClick(UINT nCmd)
{
// ToDo: Add your specialized code here or after the call to base class
CDBExpDatabase *pDatabase = this->GetDatabase();
PARAM_TABLE paramTable;
memset(¶mTable, 0, sizeof(paramTable));
strcpy(paramTable.szConnectionString, (const char *)this->GetDatabase()->m_strCnn);
LPARAM lParam = (LPARAM)¶mTable;
HWND hWnd = AfxGetMainWnd()->m_hWnd;
CString strSQL = "";
switch(nCmd)
{
case ID_MENU_NEW_TABLE:
this->Table_Create(hWnd, lParam);
break;
case ID_MENU_DEL_TABLE:
this->Table_Remove(hWnd, lParam);
break;
default:
CDBTreeNode::OnMenuItemClick(nCmd);
break;
}
}
int CTablePackage::Table_Remove(HWND hWnd, LPARAM lParam)
{
AfxMessageBox("Not implemented");
return 0;
}
int CTablePackage::Table_Create(HWND hWnd, LPARAM lParam)
{
return CDLLFuncs::Table_Create(hWnd, lParam);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?