16,471
社区成员
发帖
与我相关
我的任务
分享
void CIDCardTestDlg::IDCardDown()
{
CString FileName;
int FileNum=0;
FileName.Format("C:\\%d-1.bmp", FileNum);
HBITMAP m_Bitmap = NULL;
if(m_Bitmap)
{
DeleteObject(m_Bitmap);
m_Bitmap = NULL;
}
m_Bitmap=(HBITMAP)::LoadImage(AfxGetInstanceHandle(),FileName,IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION|LR_DEFAULTSIZE);
if(m_Bitmap == NULL)
{
return;
}
//**********************************************************************************************************************
//显示图像
CDC* pDC;
CRect rect;
CDC memDC;
void* old;
CBitmap bm;
BITMAP bitmap;
pDC = m_IDPicture.GetDC();
memDC.CreateCompatibleDC(pDC);
old = memDC.SelectObject(m_Bitmap);
bm.Attach(m_Bitmap);
bm.GetBitmap(&bitmap);
m_IDPicture.GetClientRect(&rect);
pDC->SetStretchBltMode(COLORONCOLOR);
pDC->StretchBlt(rect.left, rect.top, rect.right, rect.bottom, &memDC, 0, 0, bitmap.bmWidth, bitmap.bmHeight, SRCCOPY);
memDC.SelectObject(old);
bm.Detach();
//**********************************************************************************************************************
//释放资源
GetObject(m_Bitmap,sizeof(bitmap),&bitmap);
DeleteObject(SelectObject(memDC,m_Bitmap));
DeleteObject(m_Bitmap);
DeleteDC(memDC);
::ReleaseDC(NULL,*pDC);
}
void CIDCardTestDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}
是加在if里 还是else里面呢? 如果直接填充进去就没有按钮了