您的位置:首页 > 其它

在MDI主窗口中设置图像背景

2015-10-09 11:08 435 查看
1.创建一个多文档应用程序,工程名为NoChild。

2.导入背景位图IDB_CAR

3.添加新的类CBgWnd。基类选择generic CWnd类。

4.重载CBgWnd类的OnEraseBkgnd(CDC *pDC)函数。

BOOL CBgWnd::OnEraseBkgnd(CDC* pDC)

{

// TODO: Add your message handler code here and/or call default

CDC memDc;

CBitmap bmp;

CRect clientRect;

BITMAP bitmap;

GetClientRect(&clientRect);

bmp.LoadBitmap(IDB_CAR);

bmp.GetObject(sizeof(BITMAP), &bitmap);

memDc.CreateCompatibleDC(pDC);

CBitmap *pOldBmp = memDc.SelectObject(&bmp);

pDC->StretchBlt(clientRect.left, clientRect.top, clientRect.Width(), clientRect.Height(), &memDc, 0, 0, bitmap.bmWidth, bitmap.bmHeight, SRCCOPY);

memDc.SelectObject(pOldBmp);

memDc.DeleteDC();

return TRUE;

//return CWnd::OnEraseBkgnd(pDC);

}

5.重载CBgWnd类的OnSize(UINT nType, int cx, int cy) 函数。

void CBgWnd::OnSize(UINT nType, int cx, int cy)

{

CWnd::OnSize(nType, cx, cy);

// TODO: Add your message handler code here

Invalidate();

}

6.在CMainFrame类中添加CBgWnd类型变量。

CBgWnd m_bgWnd;

7.在CMainFrame类OnCreate函数中添加

if (!m_bgWnd.SubclassWindow(m_hWndMDIClient))

{

return -1;

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: