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

📄 selphotodlg.cpp

📁 人事管理系统
💻 CPP
字号:
// SelPhotoDlg.cpp : implementation file
//

#include "stdafx.h"
#include "PersonelManage.h"
#include "SelPhotoDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CSelPhotoDlg dialog


CSelPhotoDlg::CSelPhotoDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CSelPhotoDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CSelPhotoDlg)
	m_strFilePath = _T("");
	//}}AFX_DATA_INIT

	m_pPic = NULL;
}


void CSelPhotoDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CSelPhotoDlg)
	DDX_Text(pDX, IDC_EDIT_FILEPATH, m_strFilePath);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CSelPhotoDlg, CDialog)
	//{{AFX_MSG_MAP(CSelPhotoDlg)
	ON_WM_PAINT()
	ON_BN_CLICKED(IDC_BUTTON_SELFILE, OnButtonSelfile)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSelPhotoDlg message handlers

void CSelPhotoDlg::OnPaint() 
{
	CPaintDC dc(this); // device context for painting
	
	// TODO: Add your message handler code here
	if(m_pPic)
	{
		CWnd *pWnd = GetDlgItem(IDC_STATIC_PHOTO);
		CRect rect;
		pWnd->GetClientRect(&rect);
		CDC *pDC = pWnd->GetDC();

		OLE_XSIZE_HIMETRIC hmWidth;
		OLE_YSIZE_HIMETRIC hmHeight;
		m_pPic->get_Width(&hmWidth);
		m_pPic->get_Height(&hmHeight);
		m_pPic->Render(*pDC, 0, 0, rect.Width(), rect.Height(), 0, hmHeight, hmWidth, -hmHeight, NULL);
	}
	
	// Do not call CDialog::OnPaint() for painting messages
}

void CSelPhotoDlg::OnButtonSelfile() 
{
	// TODO: Add your control notification handler code here
	CString szFilter = _T("图像文件(*.jpg)|*.jpg|JPEG文件(*.jpg)|*.jpg|所有文件(*.*)|*.*||");
	CFileDialog selFileDlg(TRUE, "BMP", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter);
	if(selFileDlg.DoModal() == IDOK)
	{
		m_strFilePath = selFileDlg.GetPathName();
		UpdateData(FALSE);
		if(m_strFilePath.GetLength() > 0)
		{
			IStream *pStm;
			CFileStatus fStatus;
			CFile file;
			LONG cb;

			//IPicture *pPic;
			if(file.Open(m_strFilePath, CFile::modeRead) && file.GetStatus(m_strFilePath, fStatus)
						&& ((cb = fStatus.m_size) != -1))
			{
				HGLOBAL hGlobal = GlobalAlloc(GMEM_MOVEABLE, cb);
				LPVOID pvData = NULL;
				if(hGlobal != NULL)
				{
					if((pvData = GlobalLock(hGlobal)) != NULL)
					{
						//把文件读入内存缓冲区
						file.ReadHuge(pvData, cb);
						GlobalUnlock(hGlobal);
						CreateStreamOnHGlobal(hGlobal, TRUE, &pStm);
					}
				}
			}
			//装载图像文件
			OleLoadPicture(pStm, fStatus.m_size, TRUE, IID_IPicture, (LPVOID *)&m_pPic);
			pStm->Release();
		}
	}
	else
		return;
}

⌨️ 快捷键说明

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