viewpackage.cpp
来自「本人买的<<VC++项目开发实例>>源代码配套光盘.」· C++ 代码 · 共 185 行
CPP
185 行
// ViewPackage.cpp: implementation of the CViewPackage class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "DBExp.h"
#include "ViewPackage.h"
#include "CDBExpDatabase.h"
#include "CDBTreeNode.h"
#include "mainfrm.h"
#include "..\DLLs\ViewFunc\viewparamdef.h"
#include "DLLFuncs.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
//##ModelId=3C5B9B9E0379
CViewPackage::CViewPackage()
{
}
//##ModelId=3C5B9B9E037A
CViewPackage::~CViewPackage()
{
}
//##ModelId=3C5B9B9E0396
const char *CViewPackage::GetTreeNodeCaption()
{
static char szCaption[] = _T("视图包");
return szCaption;
}
//##ModelId=3C5B9B9E03A0
BOOL CViewPackage::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_VIEW].bHasExpanded)
return TRUE;
pDatabase->EnumObjects(ADODB::adSchemaTables, "VIEW");
pList = &pDatabase->m_ObStruct[CDBExpDatabase::OBS_VIEW].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=3C5CCC8400E0
BOOL CViewPackage::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[1].m_List.GetHeadPosition();
CDBTreeNode *pTreeNode = NULL;
while(pos != NULL)
{
pTreeNode = pDatabase->m_ObStruct[1].m_List.GetAt(pos);
pTreeNode->BuildLVITEM(nCount);
pListView->GetListCtrl().InsertItem(&pTreeNode->m_lvInsertStruct);
pDatabase->m_ObStruct[1].m_List.GetNext(pos);
}
return TRUE;
}
//##ModelId=3C6288590347
void CViewPackage::BuildTVITEM(HTREEITEM hParentItem)
{
// ToDo: Add your specialized code here or after the call to base class
CPackageNode::BuildTVITEM(hParentItem);
}
//##ModelId=3C62885B0206
BOOL CViewPackage::PopupContextMenu(DBTREE_NODE_CONTEXT& context)
{
// ToDo: Add your specialized code here or after the call to base class
return CPackageNode::PopupContextMenu(context);
}
//##ModelId=3C628859009B
void CViewPackage::BuildContextMenu(DBTREE_NODE_CONTEXT& context)
{
// ToDo: Add your specialized code here or after the call to base class
m_pContextMenu->LoadMenu(IDR_MENU_PKG_VIEW);
}
//##ModelId=3C62885A03B3
void CViewPackage::OnMenuItemClick(UINT nCmd)
{
// ToDo: Add your specialized code here or after the call to base class
CDBExpDatabase *pDatabase = this->GetDatabase();
PARAM_VIEW paramView;
memset(¶mView, 0, sizeof(paramView));
strcpy(paramView.szConnectionString, (const char *)this->GetDatabase()->m_strCnn);
LPARAM lParam = (LPARAM)¶mView;
HWND hWnd = AfxGetMainWnd()->m_hWnd;
CString strSQL = "";
switch(nCmd)
{
case ID_MENU_NEW_VIEW:
this->View_Create(hWnd, lParam);
break;
case ID_MENU_DEL_VIEW:
this->View_Remove(hWnd, lParam);
break;
default:
CDBTreeNode::OnMenuItemClick(nCmd);
break;
}
}
//##ModelId=3CC981FD0070
void CViewPackage::New()
{
// ToDo: Add your specialized code here or after the call to base class
CDDLSQL::New();
}
int CViewPackage::View_Create(HWND hWnd, LPARAM lParam)
{
return CDLLFuncs::View_Create(hWnd, lParam);
}
int CViewPackage::View_Remove(HWND hWnd, LPARAM lParam)
{
AfxMessageBox("Not implemented");
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?