我是响应一个菜单
void Ctest26Dlg::OnMenuFileopen()
{
// TODO: Add your command handler code here
//CDC MemDC;
CString szFilters ("bmp Files (*.bmp)|*.bmp|All Files (*.*)|*.*||"); CFileDialog fileDialog(TRUE, _T("bmp"), _T("*.bmp"),
OFN_FILEMUSTEXIST| OFN_HIDEREADONLY, szFilters, this);
fileDialog.DoModal();
if (fileDialog.GetPathName()!="")
{
//AfxMessageBox(fileDialog.GetPathName());
HBITMAP bitmap;
bitmap = (HBITMAP)LoadImage(AfxGetInstanceHandle(),
fileDialog.GetPathName(),IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);
HBITMAP oldBitmap;
CDC MemDC;
CClientDC dc(this);
MemDC.CreateCompatibleDC(&dc);
oldBitmap = (HBITMAP)MemDC.SelectObject(&bitmap);
CRect rc;
GetClientRect(&rc);
dc.BitBlt(0,0,rc.Width(),rc.Height(),&MemDC,0,0,SRCCOPY);
MemDC.SelectObject(oldBitmap);
AfxMessageBox(_T(""));
}}
void Ctest26Dlg::OnMenuFileopen()
{
// TODO: Add your command handler code here
//CDC MemDC;
CString szFilters ("bmp Files (*.bmp)|*.bmp|All Files (*.*)|*.*||"); CFileDialog fileDialog(TRUE, _T("bmp"), _T("*.bmp"),
OFN_FILEMUSTEXIST| OFN_HIDEREADONLY, szFilters, this);
fileDialog.DoModal();
if (fileDialog.GetPathName()!="")
{
//AfxMessageBox(fileDialog.GetPathName());
HBITMAP bitmap;
bitmap = (HBITMAP)LoadImage(AfxGetInstanceHandle(),
fileDialog.GetPathName(),IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);
HBITMAP oldBitmap;
CDC MemDC;
CClientDC dc(this);
MemDC.CreateCompatibleDC(&dc);
oldBitmap = (HBITMAP)MemDC.SelectObject(&bitmap);
CRect rc;
GetClientRect(&rc);
dc.BitBlt(0,0,rc.Width(),rc.Height(),&MemDC,0,0,SRCCOPY);
MemDC.SelectObject(oldBitmap);
AfxMessageBox(_T(""));
}}
{
if (IsIconic())
{
CPaintDC dc(this); // 用于绘制的设备上下文 SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0); // 使图标在工作矩形中居中
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; // 绘制图标
dc.DrawIcon(x, y, m_hIcon);
}
else
{
if (m_bitmap)//m_bitmap是dialog的一个变量HBITMAP
{
HBITMAP oldBitmap;
CDC MemDC;
CPaintDC dc(this);
MemDC.CreateCompatibleDC(&dc);
oldBitmap = (HBITMAP)MemDC.SelectObject(&m_bitmap);
CRect rc;
GetClientRect(&rc);
dc.BitBlt(0,0,rc.Width(),rc.Height(),&MemDC,0,0,SRCCOPY);
MemDC.SelectObject(oldBitmap);
CDialog::OnPaint();
}
}
}
//通过菜单响应打开bmp文件来显示
void Ctest26Dlg::OnMenuFileopen()
{
// TODO: Add your command handler code here
//CDC MemDC;
CString szFilters ("bmp Files (*.bmp)|*.bmp|All Files (*.*)|*.*||"); CFileDialog fileDialog(TRUE, _T("bmp"), _T("*.bmp"),
OFN_FILEMUSTEXIST| OFN_HIDEREADONLY, szFilters, this);
fileDialog.DoModal();
if (fileDialog.GetPathName()!="")
{
//AfxMessageBox(fileDialog.GetPathName());
HBITMAP bitmap;
bitmap = (HBITMAP)LoadImage(AfxGetInstanceHandle(),
fileDialog.GetPathName(),IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);
m_bitmap = bitmap;
SendMessage(WM_PAINT);
}}
bitmap = (HBITMAP)LoadImage(AfxGetInstanceHandle(),
fileDialog.GetPathName(),IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);if (bitmap != NULL)
m_bitmap.hObject (HBITMAP)bitmap;
else
MessageBox("Failed to open the image");
void Ctest26Dlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // 用于绘制的设备上下文 SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0); // 使图标在工作矩形中居中
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; // 绘制图标
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CBitmap* oldBitmap;
CDC MemDC;
CPaintDC dc(this);
MemDC.CreateCompatibleDC(&dc);
oldBitmap = MemDC.SelectObject(&m_Bitmap);//CBitmap m_Bitmap;
CRect rc;
GetClientRect(&rc);
dc.BitBlt(0,30,rc.Width(),rc.Height(),&MemDC,0,0,SRCCOPY);
MemDC.SelectObject(oldBitmap);
CDialog::OnPaint();
}
}void Ctest26Dlg::OnMenuFileopen()
{
// TODO: Add your command handler code here
//CDC MemDC;
CString szFilters ("bmp Files (*.bmp)|*.bmp|All Files (*.*)|*.*||"); CFileDialog fileDialog(TRUE, _T("bmp"), _T("*.bmp"),
OFN_FILEMUSTEXIST| OFN_HIDEREADONLY, szFilters, this);
//fileDialog.DoModal();
if (fileDialog.DoModal() == IDOK)
{
HBITMAP bitmap;
bitmap = (HBITMAP)LoadImage(AfxGetInstanceHandle(),
fileDialog.GetPathName(),IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);
m_Bitmap.DeleteObject();
m_Bitmap.Attach(bitmap);
Invalidate();
//SendMessage(WM_PAINT);
}}