亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? datagridview.cpp

?? 這是一個分水嶺程序
?? CPP
字號:
// DataGridView.cpp : implementation file
//

#include "stdafx.h"

#include "MyImageDb.h"
#include "DataGridView.h"
#include "myimagedbdoc.h"
#include "MainFrm.h"
#include <AFXOLE.H>

#include "columns.h"
#include "column.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CDataGridView

IMPLEMENT_DYNCREATE(CDataGridView, CFormView)

CDataGridView::CDataGridView()
	: CFormView(CDataGridView::IDD), m_bAllowNew(true), m_bAllowEdit(true), m_bAllowDelete(true)
{
	//{{AFX_DATA_INIT(CDataGridView)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
	mousePressed = FALSE;
	seginfoRS = trainPointsRS = m_pRS = NULL;
}

CDataGridView::~CDataGridView()
{
}

void CDataGridView::DoDataExchange(CDataExchange* pDX)
{
	CFormView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDataGridView)
	DDX_Control(pDX, IDC_DATAGRID1, m_ctlDataGrid);
	DDX_Control(pDX, IDC_REGIONCLASSDATAGRID, myRegionclassInfoGrid);
	DDX_Control(pDX, IDC_POINTSINFOGRID, myPointsInfoGrid);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDataGridView, CFormView)
	//{{AFX_MSG_MAP(CDataGridView)
	ON_WM_SIZE()
	ON_WM_CREATE()
	ON_WM_VSCROLL()
	ON_WM_HSCROLL()
	ON_WM_KEYDOWN()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDataGridView diagnostics

#ifdef _DEBUG
void CDataGridView::AssertValid() const
{
	CFormView::AssertValid();
}

void CDataGridView::Dump(CDumpContext& dc) const
{
	CFormView::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CDataGridView message handlers
void CDataGridView::UpdateExistsClassGrid()
//刷新現有分割類表格;
{
    CMainFrame* pMainFrame = reinterpret_cast<CMainFrame*>(AfxGetMainWnd());

	if (pMainFrame->isSegInfoDbOK)
	{
		seginfoRS = pMainFrame->seginfoRs->m_pRecordset;
		myRegionclassInfoGrid.SetAllowDelete(FALSE);
        myRegionclassInfoGrid.SetCaption("分割類信息");
	    myRegionclassInfoGrid.SetRefDataSource(NULL);
	    myRegionclassInfoGrid.SetRefDataSource( (LPUNKNOWN) seginfoRS );
	    myRegionclassInfoGrid.Refresh();
	    
	    myRegionclassInfoGrid.UpdateData(FALSE);	
    }
}


void CDataGridView::UpdateTrainPointsGrid()
//刷新訓練點表格;
{
    CMainFrame* pMainFrame = reinterpret_cast<CMainFrame*>(AfxGetMainWnd());
	if (pMainFrame->isTrainPointDbOK)
	{
		trainPointsRS = pMainFrame->trainpointRs->m_pRecordset;
		myPointsInfoGrid.SetAllowDelete(FALSE);
        myPointsInfoGrid.SetCaption("訓練點信息");
	    myPointsInfoGrid.SetRefDataSource(NULL);
	    myPointsInfoGrid.SetRefDataSource( (LPUNKNOWN) trainPointsRS );
	    myPointsInfoGrid.Refresh();
	    
	    myRegionclassInfoGrid.UpdateData(FALSE);	
    }
}
void CDataGridView::UpdateGridDetails(const CString& sTableName)
{
    CMainFrame* pMainFrame = reinterpret_cast<CMainFrame*>(AfxGetMainWnd());
	if (pMainFrame->isDbOK)
	{
		m_pRS = pMainFrame->myRs->m_pRecordset;
		m_ctlDataGrid.SetAllowDelete(FALSE);
        m_ctlDataGrid.SetCaption("圖像表");
	    m_ctlDataGrid.SetRefDataSource(NULL);
	    m_ctlDataGrid.SetRefDataSource( (LPUNKNOWN) m_pRS );
	    m_ctlDataGrid.Refresh();
	    
	    m_ctlDataGrid.UpdateData(FALSE);	
    }

	if (pMainFrame->isSegInfoDbOK)
	{
		seginfoRS = pMainFrame->seginfoRs->m_pRecordset;
		myRegionclassInfoGrid.SetAllowDelete(FALSE);
        myRegionclassInfoGrid.SetCaption("分割類信息");
	    myRegionclassInfoGrid.SetRefDataSource(NULL);
	    myRegionclassInfoGrid.SetRefDataSource( (LPUNKNOWN) seginfoRS );
	    myRegionclassInfoGrid.Refresh();
	    
	    myRegionclassInfoGrid.UpdateData(FALSE);	
    }

	if (pMainFrame->isTrainPointDbOK)
	{
		trainPointsRS = pMainFrame->trainpointRs->m_pRecordset;
		myPointsInfoGrid.SetAllowDelete(FALSE);
        myPointsInfoGrid.SetCaption("訓練點信息");
	    myPointsInfoGrid.SetRefDataSource(NULL);
	    myPointsInfoGrid.SetRefDataSource( (LPUNKNOWN) trainPointsRS );
	    myPointsInfoGrid.Refresh();
	    
	    myRegionclassInfoGrid.UpdateData(FALSE);	
    }
}

void CDataGridView::OnSize(UINT nType, int cx, int cy) 
{
	CFormView::OnSize(nType, cx, cy);
	
    if (m_ctlDataGrid.m_hWnd != NULL)
	{
		m_ctlDataGrid.MoveWindow(0, 0, cx/2, cy);
		myRegionclassInfoGrid.MoveWindow(cx/2, 0, cx/2, cy/2);
		myPointsInfoGrid.MoveWindow(cx/2, cy/2, cx/2, cy/2);
	}        
}

CString CDataGridView::GetErrorDescription(_com_error& e)
{
    _bstr_t bstrSource(e.Source());
    _bstr_t bstrDescription(e.Description());
    _TCHAR szTemp[1024];

    CString strInfo ;
    wsprintf(szTemp, _T("Message : %s\n"), e.ErrorMessage());
    strInfo = szTemp;
    wsprintf(szTemp, _T("Code : 0x%08lx\n"), e.Error());
    strInfo += szTemp;
    wsprintf(szTemp, _T("Source : %s\n"), bstrSource.length() ? (LPCTSTR)bstrSource : _T("null"));
    strInfo += szTemp;
    wsprintf(szTemp, _T("Description : %s\n"), bstrDescription.length() ? (LPCTSTR)bstrDescription : _T("null"));
    strInfo += szTemp;

    return strInfo;
}

void CDataGridView::OnInitialUpdate() 
{
	CFormView::OnInitialUpdate();
	CMainFrame *pFrame;
	pFrame = (CMainFrame*) AfxGetApp()->m_pMainWnd;             
	pFrame->pDataGridView = this;
	if (pFrame->isDbOK)
	{
		m_pRS = pFrame->myRs->m_pRecordset;
	}
	
    m_ctlDataGrid.SetAllowUpdate(m_bAllowEdit);
    m_ctlDataGrid.SetAllowAddNew(m_bAllowNew);	
    m_ctlDataGrid.SetAllowDelete(FALSE);
	m_ctlDataGrid.SetRefDataSource(m_pRS);
}



BEGIN_EVENTSINK_MAP(CDataGridView, CFormView)
    //{{AFX_EVENTSINK_MAP(CDataGridView)
	ON_EVENT(CDataGridView, IDC_DATAGRID1, 221 /* SelChange */, OnSelChangeDatagrid1, VTS_PI2)
	ON_EVENT(CDataGridView, IDC_DATAGRID1, -605 /* MouseDown */, OnMouseDownDatagrid1, VTS_I2 VTS_I2 VTS_I4 VTS_I4)
	ON_EVENT(CDataGridView, IDC_DATAGRID1, -601 /* DblClick */, OnDblClickDatagrid1, VTS_NONE)
	ON_EVENT(CDataGridView, IDC_DATAGRID1, 202 /* AfterDelete */, OnAfterDeleteDatagrid1, VTS_NONE)
	ON_EVENT(CDataGridView, IDC_DATAGRID1, 207 /* BeforeDelete */, OnBeforeDeleteDatagrid1, VTS_PI2)
	ON_EVENT(CDataGridView, IDC_DATAGRID1, -602 /* KeyDown */, OnKeyDownDatagrid1, VTS_PI2 VTS_I2)
	ON_EVENT(CDataGridView, IDC_POINTSINFOGRID, -601 /* DblClick */, OnDblClickPointsinfogrid, VTS_NONE)
	ON_EVENT(CDataGridView, IDC_POINTSINFOGRID, -602 /* KeyDown */, OnKeyDownPointsinfogrid, VTS_PI2 VTS_I2)
	//}}AFX_EVENTSINK_MAP
END_EVENTSINK_MAP()

void CDataGridView::OnSelChangeDatagrid1(short FAR* Cancel) 
{
	selRow = m_ctlDataGrid.GetRow();
	
	CMainFrame* pFrame = (CMainFrame*) AfxGetApp()->GetMainWnd();
	pFrame->selRow = selRow;
}

DROPEFFECT CDataGridView::OnDragEnter(COleDataObject* pDataObject, DWORD dwKeyState, CPoint point) 
{
	// TODO: Add your specialized code here and/or call the base class

	return CFormView::OnDragEnter(pDataObject, dwKeyState, point);
}

void CDataGridView::OnDragLeave() 
{
	// TODO: Add your specialized code here and/or call the base class

	CFormView::OnDragLeave();
}

DROPEFFECT CDataGridView::OnDragOver(COleDataObject* pDataObject, DWORD dwKeyState, CPoint point) 
{
	// TODO: Add your specialized code here and/or call the base class
	
	return CFormView::OnDragOver(pDataObject, dwKeyState, point);
}

BOOL CDataGridView::OnDrop(COleDataObject* pDataObject, DROPEFFECT dropEffect, CPoint point) 
{

	return CFormView::OnDrop(pDataObject, dropEffect, point);
}

void CDataGridView::OnMouseDownDatagrid1(short Button, short Shift, long X, long Y) 
{
/*
	COleDropSource mydropsource;
    COleDataSource myoledata;
	//myoledata.DoDragDrop(DROPEFFECT_MOVE, NULL, NULL);
	myoledata.DoDragDrop(DROPEFFECT_MOVE, NULL, &mydropsource);
*/
}

int CDataGridView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CFormView::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	return 0;
}

CMyImageDBDoc* CDataGridView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CMyImageDBDoc)));
	return (CMyImageDBDoc*)m_pDocument;
}

void CDataGridView::OnDblClickPointsinfogrid() 
{
	CMainFrame* pFrame = (CMainFrame*) AfxGetApp()->GetMainWnd();

	//LONG templ = myPointsInfoGrid.GetRow();
	CColumns tempcols = (CColumns) myPointsInfoGrid.GetColumns();
	LONG templ = tempcols.GetCount();
	CColumn tempcol = tempcols.GetItem(COleVariant((long)2));
	CString iname = tempcol.GetText();//所在圖像的名字;
	tempcol = tempcols.GetItem(COleVariant((long)0));
	CString ptidstr = tempcol.GetText();//點在表中的ID;
	LONG ptid = strtol(ptidstr, NULL, 10);
	tempcol = tempcols.GetItem(COleVariant((long)1));
	CString rgclass = tempcol.GetText();//點所屬的類;
	tempcol = tempcols.GetItem(COleVariant((long)3));
	CString pxstr = tempcol.GetText();//點在圖像中的位置X;
	INT px = strtol(pxstr, NULL, 10);
	tempcol = tempcols.GetItem(COleVariant((long)4));
	CString pystr = tempcol.GetText();//點在圖像中的位置X;
	INT py = strtol(pystr, NULL, 10);

	//更新mainfrm中的圖像名字, 重設當前選擇點,并在VIEW中重畫圖像;
	pFrame->selName = iname;
	pFrame->pImageView->SetCurSelTrainPoint(ptid, iname, 
		px, py, rgclass);
	GetDocument()->RefreshView();//刷新文檔類中的圖像數據;
	//重新在圖像表中定位到該圖像;
	//重新在現存類表中定位到該類;

}

void CDataGridView::OnDblClickDatagrid1() 
{
	CMainFrame* pFrame = (CMainFrame*) AfxGetApp()->GetMainWnd();

	selRow = m_ctlDataGrid.GetRow();
	CColumns tempcols = (CColumns) m_ctlDataGrid.GetColumns();
	LONG templ = tempcols.GetCount();
	CColumn tempcol = tempcols.GetItem(COleVariant((long)0));
	CString tempstr = tempcol.GetText();
	pFrame->selID = tempstr;
	tempcol = tempcols.GetItem(COleVariant((long)1));
	tempstr = tempcol.GetText();
	pFrame->selName = tempstr;
	pFrame->selRow = selRow;

	//清除當前選擇訓練點;
	pFrame->pImageView->ClearCurTrainPt();

	GetDocument()->RefreshView();//刷新文檔類中的圖像數據;

	pFrame->pImageView->Invalidate(FALSE);//刷新圖像視圖;
}


void CDataGridView::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
{
/*
	CClientDC dc(this);
	HRGN* curgn = new HRGN;
	dc.GetWindow()->GetWindowRgn(*curgn);
	m_ctlDataGrid.SetWindowRgn(*curgn, 1);
*/
	CView::OnVScroll(nSBCode, nPos, pScrollBar);
}

void CDataGridView::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
{
/*
	CMainFrame* pFrame = (CMainFrame*) AfxGetApp()->GetMainWnd();
	UpdateGridDetails( pFrame->tableName );
*/
	//CFormView::OnHScroll(nSBCode, nPos, pScrollBar);
	CView::OnHScroll(nSBCode, nPos, pScrollBar);
}

void CDataGridView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) 
{
	// TODO: Add your message handler code here and/or call default
	CFormView::OnKeyDown(nChar, nRepCnt, nFlags);
}

void CDataGridView::OnAfterDeleteDatagrid1() 
{
/*
	CMainFrame* pFrame = (CMainFrame*) AfxGetApp()->GetMainWnd();
	pFrame->RefreshTableID(deleteID);//重排表內ID,使其唯一;
*/
}

void CDataGridView::OnBeforeDeleteDatagrid1(short FAR* Cancel) 
{
}

void CDataGridView::OnKeyDownDatagrid1(short FAR* KeyCode, short Shift) 
{
    SHORT  downkey = *KeyCode;
	if (downkey==46)
	{
		//“DEL”鍵,刪除當前記錄;
		CColumns tempcols = (CColumns) m_ctlDataGrid.GetColumns();
		CColumn tempcol = tempcols.GetItem(COleVariant((long)0));
		CString tempstr = tempcol.GetText();
		deleteID = strtol(tempstr, NULL, 10);
		CMainFrame* pFrame = (CMainFrame*) AfxGetApp()->GetMainWnd();
		pFrame->RefreshTableID(deleteID);
	}

}


void CDataGridView::OnKeyDownPointsinfogrid(short FAR* KeyCode, short Shift) 
{
    SHORT  downkey = *KeyCode;
	if (downkey==46)
	{
		//“DEL”鍵,刪除當前記錄;
		CColumns tempcols = (CColumns) myPointsInfoGrid.GetColumns();
		CColumn tempcol = tempcols.GetItem(COleVariant((long)0));
		CString idstr = tempcol.GetText();
		deleteID = strtol(idstr, NULL, 10);
		tempcol = tempcols.GetItem(COleVariant((long)1));
		CString regionclass = tempcol.GetText();
		CMainFrame* pFrame = (CMainFrame*) AfxGetApp()->GetMainWnd();
		pFrame->RefreshPtTableID(deleteID, regionclass);
	}	
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩专区一卡二卡| 成人av手机在线观看| 国产成人在线视频播放| 色诱亚洲精品久久久久久| 欧美一区二区福利视频| 综合精品久久久| 精东粉嫩av免费一区二区三区| av在线不卡电影| 日韩精品一区二区三区视频| 亚洲综合男人的天堂| 国产一区二区h| 69p69国产精品| 亚洲精品免费看| 高清beeg欧美| 精品久久一区二区| 午夜电影一区二区三区| 99热精品一区二区| 久久蜜桃av一区精品变态类天堂 | 色88888久久久久久影院按摩| 欧美v日韩v国产v| 高清在线观看日韩| 欧美一区二区三区不卡| 亚洲国产精品久久不卡毛片 | 日韩av午夜在线观看| 欧洲av一区二区嗯嗯嗯啊| 国产精品视频麻豆| 国产高清不卡一区| 国产亚洲精品福利| 韩国女主播成人在线| 欧美videofree性高清杂交| 午夜激情综合网| 欧美日韩中文字幕精品| 夜夜揉揉日日人人青青一国产精品| 成人精品免费看| 欧美国产1区2区| 粉嫩13p一区二区三区| 国产婷婷一区二区| 成人晚上爱看视频| 中文字幕一区二区5566日韩| 99re8在线精品视频免费播放| 中文字幕一区二区在线观看| 成人av综合在线| 国产精品成人免费精品自在线观看 | 久久久综合视频| 国产精品一区专区| 国产精品久久毛片av大全日韩| av一二三不卡影片| 久久精工是国产品牌吗| 精品国产3级a| 成人福利在线看| 亚洲免费在线观看视频| 欧美日韩在线不卡| 日韩av在线发布| 久久久久久麻豆| 91在线观看免费视频| 亚洲激情男女视频| 欧美男生操女生| 黑人巨大精品欧美黑白配亚洲| 国产亚洲欧洲997久久综合 | 中文字幕字幕中文在线中不卡视频| 国产成人亚洲精品青草天美 | 成人午夜在线播放| 日韩国产精品久久久| 欧美中文字幕一区| 久久精品国产一区二区| 国产性天天综合网| 色综合久久99| 蜜桃精品视频在线| 国产精品麻豆网站| 欧美猛男男办公室激情| 国产一区二区三区最好精华液| 国产精品美女一区二区三区| 欧美亚一区二区| 经典一区二区三区| 亚洲欧美激情插| 91精品国产综合久久小美女| 粉嫩一区二区三区性色av| 亚洲一区中文日韩| 国产欧美日本一区二区三区| 欧美午夜精品电影| 九一九一国产精品| 亚洲成av人综合在线观看| 久久精品欧美日韩| 4438x亚洲最大成人网| av中文字幕不卡| 国产精品综合一区二区三区| 欧美久久久一区| 美女在线视频一区| 亚洲区小说区图片区qvod| 91精品国产一区二区三区蜜臀| 成人精品在线视频观看| 美女一区二区视频| 亚洲综合色视频| 国产精品美女一区二区在线观看| 51午夜精品国产| 欧美专区亚洲专区| 国产成人免费视频精品含羞草妖精| 天天色综合成人网| 伊人一区二区三区| 亚洲欧洲国产专区| 久久精品人人做人人爽人人| 欧美电影免费观看完整版| xnxx国产精品| 欧美日韩免费电影| 日本精品视频一区二区三区| 成人亚洲一区二区一| 国产高清精品久久久久| 亚洲视频你懂的| 国产日韩精品一区二区浪潮av| 91精品国产综合久久香蕉麻豆| 色老汉一区二区三区| 97精品超碰一区二区三区| 丰满少妇久久久久久久| 国产精品一区二区不卡| 国产乱子伦视频一区二区三区| 美女任你摸久久| 热久久一区二区| 美女脱光内衣内裤视频久久影院| 天堂蜜桃一区二区三区| 性欧美大战久久久久久久久| 午夜精品久久久久久| 亚洲国产精品久久艾草纯爱| 偷窥国产亚洲免费视频| 日韩精品电影在线观看| 日本亚洲电影天堂| 麻豆91在线播放免费| 国产一区二区中文字幕| 国产成人精品综合在线观看| 成人av午夜影院| 日本久久电影网| 欧美日韩国产精选| 日韩美一区二区三区| 欧美老年两性高潮| 日韩精品专区在线| 日韩欧美在线不卡| 日韩精品一区二区三区在线| 精品日韩一区二区三区| 国产欧美日产一区| 亚洲激情图片一区| 视频一区欧美日韩| 狠狠狠色丁香婷婷综合激情| 国产黄色91视频| 91精品国产综合久久精品麻豆 | 国产精品美女久久福利网站| 最新久久zyz资源站| 亚洲国产欧美另类丝袜| 麻豆一区二区在线| 成人一区二区三区在线观看| 色八戒一区二区三区| 欧美一区二区视频观看视频 | 欧美国产日韩一二三区| 本田岬高潮一区二区三区| 午夜电影一区二区| 美女在线一区二区| 风间由美一区二区三区在线观看 | 欧美日韩视频在线一区二区| 精品嫩草影院久久| 最新日韩在线视频| 免费三级欧美电影| 成人免费视频视频| 4438x亚洲最大成人网| 国产农村妇女毛片精品久久麻豆| 樱桃国产成人精品视频| 久久电影国产免费久久电影| 99久久99久久综合| 欧美一级日韩一级| 一区二区三区四区五区视频在线观看 | 成人动漫一区二区在线| 91精品欧美综合在线观看最新 | 国产乱人伦偷精品视频不卡| 色偷偷久久一区二区三区| 欧美成人伊人久久综合网| 亚洲免费资源在线播放| 国产在线一区二区综合免费视频| 欧美亚洲另类激情小说| 国产日韩成人精品| 日本美女一区二区三区视频| 91麻豆6部合集magnet| 久久免费视频色| 青娱乐精品视频在线| 在线观看国产一区二区| 国产精品三级av| 国产乱人伦偷精品视频免下载| 555夜色666亚洲国产免| 亚洲综合色网站| 91美女片黄在线观看91美女| 久久久91精品国产一区二区精品| 日韩av一级电影| 欧美日韩高清不卡| 一区二区三区蜜桃| 99国内精品久久| 国产精品免费视频一区| 国产乱理伦片在线观看夜一区| 日韩一级在线观看| 日韩高清欧美激情| 欧美精品乱码久久久久久按摩| 亚洲综合清纯丝袜自拍| 欧美亚州韩日在线看免费版国语版| 亚洲同性gay激情无套| 99在线精品一区二区三区|