背景:对话框无边框,需要在固定的位置进行重绘。
落实步骤:
1、自定义重绘类;
2、调用重绘类;
3、获取并处理需要重绘的区域。
重绘类的代码如下:
http://code1.okbase.net/codefile/BackgroundUtil.cpp_2012121817049_1.htm
声明
CBackgroundUtil m_BKShow;
在构造函数中初始化
m_BKShow.SetBitmap(IDB_BMP_BK); //界面抬头,图片自己加载
在BOOL CXXXDlg::OnEraseBkgnd(CDC* pDC)中确认重绘位置
CRect rcDraw;
CRect rectClient;
GetClientRect(&rectClient);
CRect rectLogo;
m_staicLOGO.GetWindowRect(&rectLogo);
ScreenToClient(&rectLogo);
rcDraw.left = rectLogo.right;
rcDraw.top = rectLogo.top;
rcDraw.bottom = rectLogo.bottom;
rcDraw.right = rectClient.right;
m_BKShow.DrawBkStretchBitmap(pDC,rcDraw);
以上只是部分代码,基本上设置完成后就可以看到重绘的位置。