void Cadodemo_2View::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: 在此处添加消息处理程序代码
// 不为绘图消息调用 CView::OnPaint()
CBitmap bmp;
RECT rect;
RECT rectView;
POINT ptSize;
CDC dcmem;
BITMAP bm;
int b=bmp.LoadBitmapW(IDB_BITMAP5);//取出位图
dcmem.CreateCompatibleDC(&dc);//创建兼容设备上下文
dcmem.SelectObject(&bmp);//悬着为徒
dcmem.SetMapMode(dc.GetMapMode());//设置映射方式
::GetObject(bmp.m_hObject,sizeof(BITMAP),(LPSTR)&bm);//映射位图
::GetClientRect(this->m_hWnd,&rect);
ptSize.x=bm.bmWidth;
ptSize.x=bm.bmHeight;
dc.DPtoLP((LPPOINT)&ptSize,1);//设备单元to逻辑单元
::GetClientRect(this->m_hWnd,&rectView);
CRect RectBmp=rectView;
//位图宽度容纳不下的处理
/* if((rectView.right-rectView.left)>bm.bmWidth)
{
RectBmp.left=rectView.left+(rectView.right-rectView.left-bm.bmWidth)/2;
RectBmp.right=bm.bmWidth;
}
else
{
RectBmp.left=rectView.left;
RectBmp.right=rectView.right-rectView.left;
}
//位图高度容纳不下
if((rectView.bottom-rectView.top)>bm.bmHeight)
{
RectBmp.top=rectView.top+(rectView.bottom-rectView.top-bm.bmHeight)/2;
RectBmp.bottom=bm.bmHeight;
}
else
{
RectBmp.top=rectView.top;
RectBmp.bottom=rectView.bottom-rectView.top;
}*/
//加载试图到设备上下文
dc.StretchBlt(RectBmp.left,RectBmp.top ,RectBmp.right ,RectBmp.bottom ,\
&dcmem,0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
dcmem.DeleteDC();
//dc.DeleteDC();
}