如何使图片付上对话框,但有不覆盖对话框上的其他控件?
如何使图片付上对话框,但有不覆盖对话框上的其他控件? 问题点数:20、回复次数:1Top
1 楼huqiming(Super)回复于 2002-04-06 16:08:50 得分 20
void CDlgBmpDlg::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
{
///以下两行放在OnInitDialog()中比较好。
CBitmap m_bmp;
m_bmp.LoadBitmap(IDB_BITMAP1);
CPaintDC dc(this);
CDC mem;
mem.CreateCompatibleDC(&dc);
BITMAP bm;
m_bmp.GetBitmap(&bm);
CBitmap* pOld =(CBitmap* )mem.SelectObject(&m_bmp);
CRect rc;
GetWindowRect(rc);
dc.StretchBlt(0,0,rc.Width(),rc.Height(),&mem,0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
mem.SelectObject(pOld);
return;
///程序退出,必须调用m_bmp.DeleteObject();否则内存泄露
CDialog::OnPaint();
}
}Top




