您的位置:首页 > 其它

如何在窗口绘制背景图片,并且在图片上话一个矩形

2013-12-06 11:05 337 查看
void CPtestDlg::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
{
CPaintDC dc(this);
CImage ii;
BOOL b = ii.Load(_T("c:\\flower.jpg"));
HBITMAP hbmp =(HBITMAP)ii.operator HBITMAP();
CBitmap bm;
bm.Attach(hbmp);

CRect   rect;
GetClientRect(&rect);
CDC   dcMem;
dcMem.CreateCompatibleDC(&dc);

CBitmap   *pbmpOld=dcMem.SelectObject(&bm);
dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,
rect.Width(), rect.Height(), SRCCOPY);
CPen NewPen(PS_SOLID, 2, RGB(255,0,0));
dc.SelectObject(&NewPen);
dc.SetROP2(R2_COPYPEN);
dc.SelectStockObject(NULL_BRUSH);
dc.Rectangle(rect.left+20,rect.top+ 30, 126,126);
//      dc.SelectStockObject(NULL_BRUSH);
DeleteObject(&dcMem);
CDialog::OnPaint();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: