⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adddlg.cpp

📁 ADO数据库的基本操作
💻 CPP
字号:
// ADDdlg.cpp : implementation file
//

#include "stdafx.h"
#include "me.h"
#include "ADDdlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CADDdlg dialog


CADDdlg::CADDdlg(CWnd* pParent /*=NULL*/)
	: CDialog(CADDdlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CADDdlg)
	m_username = _T("");
	m_userdepart = _T("");
	m_userID = _T("");
	m_userCardID = _T("");
	m_usertelenumber = _T("");
	m_usersex = -1;
	//}}AFX_DATA_INIT
}


void CADDdlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CADDdlg)
	DDX_Text(pDX, IDC_EDIT1, m_username);
	DDX_Text(pDX, IDC_EDIT2, m_userdepart);
	DDX_Text(pDX, IDC_EDIT3, m_userID);
	DDX_Text(pDX, IDC_EDIT4, m_userCardID);
	DDX_Text(pDX, IDC_EDIT5, m_usertelenumber);
	DDX_CBIndex(pDX, IDC_COMBO3, m_usersex);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CADDdlg, CDialog)
	//{{AFX_MSG_MAP(CADDdlg)
	ON_BN_CLICKED(IDC_BUTTON1, Onselectphoto)
	ON_WM_PAINT()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CADDdlg message handlers

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

HBITMAP CADDdlg::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;
}

BOOL CADDdlg::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;
}

void CADDdlg::OnPaint() 
{
	CPaintDC dc(this); // device context for painting
	
	// TODO: Add your message handler code here
	DrawUserPhoto(46,60,&dc);
		CDialog::OnPaint();
	// Do not call CDialog::OnPaint() for painting messages
}

void CADDdlg::DrawUserPhoto(int x, int y, CDC *pDC)
{
	if(!m_hPhotoBitmap) return;
	HBITMAP OldBitmap;
	CDC MemDC;
	MemDC.CreateCompatibleDC(pDC);
	OldBitmap=(HBITMAP)MemDC.SelectObject(m_hPhotoBitmap);
	pDC->BitBlt(x,y,160,180,&MemDC,0,0,SRCCOPY);
	MemDC.SelectObject(OldBitmap);

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -