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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? photodlg.cpp

?? 學(xué)生檔案管理系統(tǒng)
?? CPP
字號:
// PhotoDlg.cpp : implementation file
//

#include "stdafx.h"
#include "StuManage.h"
#include "PhotoDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CPhotoDlg dialog
extern CStuManageApp theApp;

CPhotoDlg::CPhotoDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CPhotoDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CPhotoDlg)
	m_strId = _T("");
	m_strName = _T("");
	//}}AFX_DATA_INIT
}


void CPhotoDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CPhotoDlg)
	DDX_Control(pDX, IDC_EDIT_PHOTO_ID, m_ID);
	DDX_Text(pDX, IDC_EDIT_PHOTO_ID, m_strId);
	DDX_Text(pDX, IDC_EDIT_PHOTO_NAME, m_strName);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CPhotoDlg, CDialog)
	//{{AFX_MSG_MAP(CPhotoDlg)
	ON_BN_CLICKED(IDC_ADD_PHOTO_BTN, OnAddPhotoBtn)
	ON_BN_CLICKED(IDC_MODIFY_PHOTO_BTN, OnModifyPhotoBtn)
	ON_BN_CLICKED(IDC_DELETE_PHOTO_BTN, OnDeletePhotoBtn)
	ON_BN_CLICKED(IDC_EXECUTE_PHOTO_BTN, OnExecutePhotoBtn)
	ON_BN_CLICKED(IDC_LOOKFOR_PHOTO_BTN, OnLookforPhotoBtn)
	ON_WM_PAINT()
	ON_BN_CLICKED(IDC_SEL_PHOTO_BTN, OnSelPhotoBtn)
	ON_EN_KILLFOCUS(IDC_EDIT_PHOTO_ID, OnKillfocusEditPhotoId)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CPhotoDlg message handlers


BOOL CPhotoDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	m_hPhotoBitmap = NULL;
	m_pBMPBuffer = NULL;

	CString str;
	m_pRecordset.CreateInstance("ADODB.Recordset");
	m_pRecordset->Open("select * from StudentPhoto",_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText);       	

	if(m_pRecordset->GetRecordCount()!=0)
	{
		m_pRecordset->MoveFirst();
		m_strId = m_pRecordset->GetCollect("ID").bstrVal;
		m_strName = m_pRecordset->GetCollect("Name").bstrVal;
		//--------圖像數(shù)據(jù)----------------------//
		long lDataSize = m_pRecordset->GetFields()->GetItem("Photo")->ActualSize;
		if(lDataSize > 0)
		{
			_variant_t			varBLOB;
			varBLOB = m_pRecordset->GetFields()->GetItem("Photo")->GetChunk(lDataSize);
			if(varBLOB.vt == (VT_ARRAY | VT_UI1))
			{
				if(m_pBMPBuffer = new char[lDataSize+1])			
				{	
					char *pBuf = NULL;
					SafeArrayAccessData(varBLOB.parray,(void **)&pBuf);
					memcpy(m_pBMPBuffer,pBuf,lDataSize);				
					SafeArrayUnaccessData (varBLOB.parray);
					m_nFileLen = lDataSize;
					m_hPhotoBitmap = BufferToHBITMAP();					
				}
			}
		}
		//--------------------------------------//
	}	
	UpdateData(FALSE);	
	return TRUE;  // return TRUE unless you set the focus to a control
	// EXCEPTION: OCX Property Pages should return FALSE
}

/////////////清除分配的對象/////////////
void CPhotoDlg::DestroyPhoto()
{
	if(m_hPhotoBitmap)
	{
		DeleteObject(m_hPhotoBitmap);
		m_hPhotoBitmap = NULL;
	}
	if(m_pBMPBuffer)
	{
		delete m_pBMPBuffer;
		m_pBMPBuffer = NULL;
	}
}

/////////////加載BMP文件到內(nèi)存//////////////
BOOL CPhotoDlg::LoadBMPFile(const char *pBMPPathname)
{
	CFile file;
	if( !file.Open( pBMPPathname, CFile::modeRead) )
		return FALSE;
	m_nFileLen = file.GetLength();
	m_pBMPBuffer = new char[m_nFileLen + 1];
	if(!m_pBMPBuffer)
		return FALSE;
	if(file.ReadHuge(m_pBMPBuffer,m_nFileLen) != m_nFileLen)
		return FALSE;
	return TRUE;
}

///////////將內(nèi)存中的BMP文件內(nèi)容轉(zhuǎn)換到HBITMAP///////
HBITMAP CPhotoDlg::BufferToHBITMAP()
{
	HBITMAP				hBmp;
	LPSTR				hDIB,lpBuffer = m_pBMPBuffer;
	LPVOID				lpDIBBits;
	BITMAPFILEHEADER	bmfHeader;
	DWORD				bmfHeaderLen;

	bmfHeaderLen = sizeof(bmfHeader);
	strncpy((LPSTR)&bmfHeader,(LPSTR)lpBuffer,bmfHeaderLen);

	if (bmfHeader.bfType != (*(WORD*)"BM")) return NULL;
	hDIB = lpBuffer + bmfHeaderLen;
	BITMAPINFOHEADER &bmiHeader = *(LPBITMAPINFOHEADER)hDIB ;
	BITMAPINFO &bmInfo = *(LPBITMAPINFO)hDIB ;

	lpDIBBits=(lpBuffer)+((BITMAPFILEHEADER *)lpBuffer)->bfOffBits;
	CClientDC dc(this);
	hBmp = CreateDIBitmap(dc.m_hDC,&bmiHeader,CBM_INIT,lpDIBBits,&bmInfo,DIB_RGB_COLORS);
	return hBmp;
}

//-----------在屏幕上顯示圖像-------------------//
void CPhotoDlg::DrawUserPhoto(int x, int y, CDC *pDC)
{
	if(!m_hPhotoBitmap) return;
	
	HBITMAP OldBitmap;

	CWnd *pWnd = GetDlgItem(IDC_PICTURE);
	CRect rect; 
	pWnd->GetClientRect(&rect);	
	pDC = pWnd->GetDC();

	CDC MemDC;
	
	MemDC.CreateCompatibleDC(pDC);
	OldBitmap=(HBITMAP)MemDC.SelectObject(m_hPhotoBitmap);
	pDC->BitBlt(x,y,rect.Width(),rect.Height(),&MemDC,0,0,SRCCOPY);
	MemDC.SelectObject(OldBitmap);
}
//-----------------------------------------//

void CPhotoDlg::OnAddPhotoBtn() 
{
	// TODO: Add your control notification handler code here
	if(theApp.m_Level != 2)
	{
		AfxMessageBox("您無權(quán)添加記錄");
		return;
	}
	DestroyPhoto();
	m_strId = "";
	m_strName = "";
	AfxMessageBox("請選擇照片并輸入相關(guān)信息");
	action = 1;	
	Invalidate();
	UpdateData(FALSE);
}

void CPhotoDlg::OnModifyPhotoBtn() 
{
	// TODO: Add your control notification handler code here
	if(theApp.m_Level != 2)
	{
		AfxMessageBox("您無權(quán)修改記錄");
		return;
	}
	if(AfxMessageBox("確定修改此照片嗎?",MB_YESNO)==IDYES)	
	{
		DestroyPhoto();
		action = 2;	
		Invalidate();
	}
}

void CPhotoDlg::OnDeletePhotoBtn() 
{
	// TODO: Add your control notification handler code here
	if(theApp.m_Level != 2)
	{
		AfxMessageBox("您無權(quán)刪除記錄");
		return;
	}
	if(AfxMessageBox("確定刪除此記錄嗎?",MB_YESNO)==IDYES)	
		action = 3;		
}

void CPhotoDlg::OnExecutePhotoBtn() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	
	CString sql,str,id;
	sql = "select * from StudentPhoto ";
	m_pRecordset.CreateInstance("ADODB.Recordset");
	m_pRecordset->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText);       
	
	char			*pBuf = m_pBMPBuffer;
	VARIANT			varBLOB;
	SAFEARRAY		*psa;
	SAFEARRAYBOUND	rgsabound[1];

	switch(action)
	{
	case 1:		
		m_pRecordset->AddNew();
		//學(xué)號
		m_pRecordset->PutCollect("ID",(_variant_t)m_strId);
		//姓名
		m_pRecordset->PutCollect("Name",(_variant_t)m_strName);
		//---------------圖像數(shù)據(jù)-----------------------------//
		if(pBuf)
		{    
			rgsabound[0].lLbound = 0;
			rgsabound[0].cElements = m_nFileLen;
			psa = SafeArrayCreate(VT_UI1, 1, rgsabound);
			for (long i = 0; i < (long)m_nFileLen; i++)
				SafeArrayPutElement (psa, &i, pBuf++);
			varBLOB.vt = VT_ARRAY | VT_UI1;
			varBLOB.parray = psa;
			m_pRecordset->GetFields()->GetItem("Photo")->AppendChunk(varBLOB);
		}
		
		//-----------------------------------------------------//
		m_pRecordset->Update();	
		break;

	case 2:	
		if(m_pRecordset->GetRecordCount()!=0)
		{
			m_pRecordset->MoveFirst();
			while(!m_pRecordset->adoEOF)
			{
				id=m_pRecordset->GetCollect("ID").bstrVal;
				if(id.CompareNoCase(m_strId) == 0)
				{
					//---------------圖像數(shù)據(jù)-----------------------------//
					if(pBuf)
					{    
						rgsabound[0].lLbound = 0;
						rgsabound[0].cElements = m_nFileLen;
						psa = SafeArrayCreate(VT_UI1, 1, rgsabound);
						for (long i = 0; i < (long)m_nFileLen; i++)
							SafeArrayPutElement (psa, &i, pBuf++);
						varBLOB.vt = VT_ARRAY | VT_UI1;
						varBLOB.parray = psa;
						m_pRecordset->GetFields()->GetItem("Photo")->AppendChunk(varBLOB);
					}
					
					//-----------------------------------------------------//				
				}
				m_pRecordset->MoveNext();			
			}
		}		
		break;
	case 3:
		if(m_pRecordset->GetRecordCount()!=0)
		{
			m_pRecordset->MoveFirst();
			while(!m_pRecordset->adoEOF)
			{
				id=m_pRecordset->GetCollect("ID").bstrVal;
				if(id.CompareNoCase(m_strId) == 0)			
					m_pRecordset->Delete(adAffectCurrent);					
				m_pRecordset->MoveNext();			
			}
		}		
		break;		
		
	default:
		break;
	}

	m_pRecordset->Close();
	UpdateData(FALSE);
	action = 0;	
	OnInitDialog();
}

void CPhotoDlg::OnLookforPhotoBtn() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	MessageBox("請?jiān)诰幪栞斎肟蛑休斎肽檎业膶W(xué)號","照片管理");
    m_ID.SetFocus();
    action =4;	
	UpdateData(FALSE);
}



void CPhotoDlg::OnPaint() 
{
	CPaintDC dc(this); // device context for painting
	
	// TODO: Add your message handler code here
	CWnd *pWnd = GetDlgItem(IDC_PICTURE);
	CRect rect; 
	pWnd->GetClientRect(&rect);
	DrawUserPhoto(rect.left,rect.top,&dc);
	CDialog::OnPaint();	
	// Do not call CDialog::OnPaint() for painting messages
}

void CPhotoDlg::OnSelPhotoBtn() 
{
	// TODO: Add your control notification handler code here
	static char BASED_CODE szFilter[] = "BMP Files (*.bmp)|*.bmp|All Files (*.*)|*.*||";
	CFileDialog dlg(TRUE,"BMP",NULL,  OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,szFilter);
	if(dlg.DoModal() == IDOK)
	{
		CString pathname = dlg.GetPathName();
		DestroyPhoto();
		LoadBMPFile(pathname);
		m_hPhotoBitmap = BufferToHBITMAP();
		Invalidate();
	}		
}


void CPhotoDlg::OnKillfocusEditPhotoId() 
{
	// TODO: Add your control notification handler code here
		UpdateData(TRUE);

	CString sql,str;
	sql = "select * from StudentPhoto where ID = '"+m_strId+"'";
	m_pRecordset.CreateInstance("ADODB.Recordset");
	m_pRecordset->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText);      

	if(m_pRecordset->GetRecordCount()!=0)
	{
		m_strName = m_pRecordset->GetCollect("Name").bstrVal;
		//--------圖像數(shù)據(jù)----------------------//
		long lDataSize = m_pRecordset->GetFields()->GetItem("Photo")->ActualSize;
		if(lDataSize > 0)
		{
			_variant_t			varBLOB;
			varBLOB = m_pRecordset->GetFields()->GetItem("Photo")->GetChunk(lDataSize);
			if(varBLOB.vt == (VT_ARRAY | VT_UI1))
			{
				if(m_pBMPBuffer = new char[lDataSize+1])			
				{	
					char *pBuf = NULL;
					SafeArrayAccessData(varBLOB.parray,(void **)&pBuf);
					memcpy(m_pBMPBuffer,pBuf,lDataSize);				
					SafeArrayUnaccessData (varBLOB.parray);
					m_nFileLen = lDataSize;
					m_hPhotoBitmap = BufferToHBITMAP();					
				}
			}
		}
		//--------------------------------------//
	}
	else
	{
		if (action ==4)
		{
			MessageBox("您要查找的學(xué)號照片信息不存在","照片管理");
		}
	    m_strId="";
		m_strName="";
	}
	action=0;
	Invalidate();
	m_pRecordset->Close();
	UpdateData(false);
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产麻豆日韩欧美久久| 在线影视一区二区三区| 国产清纯白嫩初高生在线观看91 | 盗摄精品av一区二区三区| 国产精品911| 一区二区三区四区不卡视频| 91精品国产aⅴ一区二区| 成人黄色网址在线观看| 免费av网站大全久久| 亚洲视频精选在线| 久久久美女艺术照精彩视频福利播放| 欧美曰成人黄网| 从欧美一区二区三区| 日本欧美一区二区| 一区二区三区毛片| 国产精品美女一区二区三区| 日韩欧美一级片| 在线免费观看日韩欧美| 懂色av一区二区在线播放| 免费成人在线影院| 三级影片在线观看欧美日韩一区二区| 国产精品嫩草99a| 精品sm在线观看| 日韩精品资源二区在线| 欧美日韩一区高清| 亚洲精品在线观看网站| 精品婷婷伊人一区三区三| 99精品久久只有精品| 国产在线视频精品一区| 蜜桃久久久久久久| 久热成人在线视频| 视频在线观看一区二区三区| 亚洲电影在线免费观看| 一区二区三区免费看视频| 亚洲欧洲精品一区二区三区 | 日本久久一区二区三区| 99在线精品一区二区三区| 国产成人av影院| 国产成人在线网站| 国产黄色精品网站| 国产91在线看| 成人一区二区三区在线观看| 国产suv精品一区二区三区| 国产精品911| 成人美女视频在线观看| 成人av综合一区| 99re这里都是精品| 日本道精品一区二区三区| 色噜噜狠狠成人网p站| 在线欧美日韩国产| 欧美色图12p| 欧美老年两性高潮| 亚洲精品在线免费播放| 国产欧美一区二区三区在线看蜜臀 | 欧美xxx久久| 久久久99精品免费观看| 亚洲国产精品成人综合色在线婷婷| www成人在线观看| 国产亚洲欧美日韩日本| 中文字幕欧美日韩一区| 亚洲男人的天堂av| 五月婷婷久久综合| 国内成人精品2018免费看| 粉嫩av亚洲一区二区图片| 色综合久久综合中文综合网| 欧美在线不卡一区| 日韩午夜中文字幕| 国产日韩亚洲欧美综合| 最近中文字幕一区二区三区| 午夜精品久久久久| 欧美性生活大片视频| 欧美日韩国产区一| 欧美精品一区二区三区视频| 在线成人免费视频| 久久久亚洲精品一区二区三区| 久久天天做天天爱综合色| 国产精品理伦片| 亚洲欧美偷拍卡通变态| 天天色天天爱天天射综合| 久热成人在线视频| 99久久精品国产网站| 精品在线免费视频| 老司机精品视频导航| 高清shemale亚洲人妖| 精品视频在线视频| 精品久久久久一区二区国产| 国产精品久久久久久妇女6080| 亚洲h在线观看| 成人免费观看视频| 91麻豆精品国产91| 综合久久给合久久狠狠狠97色| 美女一区二区三区| 91在线观看免费视频| 日韩精品最新网址| 亚洲一线二线三线久久久| 国产精品自在在线| 欧美高清激情brazzers| 日韩毛片视频在线看| 久久成人18免费观看| 欧美三级欧美一级| 一区免费观看视频| 国产精品自拍一区| 欧美一区二区视频在线观看2022| 中文字幕一区二| 国产精品影视在线| 日韩视频在线一区二区| 一区二区在线看| 成人网在线免费视频| 日韩精品一区二区三区在线| 亚洲综合一二区| 色综合天天天天做夜夜夜夜做| 日韩二区在线观看| 一本色道亚洲精品aⅴ| 久久综合一区二区| 美女一区二区久久| 在线观看一区不卡| 亚洲少妇屁股交4| 东方aⅴ免费观看久久av| 精品乱人伦小说| 日韩高清在线观看| 欧美日本国产视频| 一区二区三区精密机械公司| www.欧美色图| 国产精品人成在线观看免费 | 精品国产乱码久久久久久蜜臀| 亚洲一区二区黄色| 色婷婷综合久久久久中文一区二区 | 一区二区三区四区亚洲| 99久久久精品免费观看国产蜜| 久久久精品蜜桃| 国产麻豆视频一区| 国产午夜一区二区三区| 国产精品一区二区你懂的| 欧美白人最猛性xxxxx69交| 看片网站欧美日韩| 精品国产污网站| 狠狠色丁香久久婷婷综合_中 | 欧美日韩精品欧美日韩精品| 亚洲激情图片一区| 91久久精品日日躁夜夜躁欧美| 国产精品久久久久久久第一福利| 成人国产精品免费观看动漫| 中文字幕电影一区| 97se亚洲国产综合自在线不卡| 中文字幕永久在线不卡| 91麻豆国产香蕉久久精品| 一区二区三区精品在线观看| 欧美亚洲综合一区| 日韩av在线播放中文字幕| 日韩一级完整毛片| 国产99久久久国产精品| 中文字幕一区二区不卡| 欧美在线观看视频一区二区三区| 午夜免费欧美电影| 精品国产污网站| aaa国产一区| 亚洲不卡在线观看| 精品久久五月天| 成人爱爱电影网址| 亚洲电影你懂得| 精品欧美久久久| 成人动漫在线一区| 洋洋成人永久网站入口| 欧美成人精精品一区二区频| 国产成人欧美日韩在线电影| 亚洲私人黄色宅男| 欧美日韩视频在线第一区| 91原创在线视频| 日韩精品亚洲一区二区三区免费| 精品国产免费久久| 一本大道久久a久久精品综合| 石原莉奈在线亚洲三区| 国产无遮挡一区二区三区毛片日本| av影院午夜一区| 日韩电影在线观看电影| 国产日韩一级二级三级| 在线视频一区二区免费| 久久成人综合网| 亚洲精品国产一区二区精华液| 91精品国产一区二区| 国产91对白在线观看九色| 一区二区三区欧美亚洲| 久久一夜天堂av一区二区三区| 色爱区综合激月婷婷| 国产乱码字幕精品高清av| 亚洲精品自拍动漫在线| 日韩欧美久久久| 在线日韩一区二区| 国产成人免费9x9x人网站视频| 亚洲成在人线免费| 亚洲国产成人午夜在线一区| 91麻豆精品国产91| 91性感美女视频| 国产在线不卡一区| 偷拍亚洲欧洲综合| 亚洲三级久久久| 国产色婷婷亚洲99精品小说| 欧美久久久久久久久中文字幕| 成人性生交大合| 久久99久久精品欧美|