• 博客园logo
  • 会员
  • 周边
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
zwicker
博客园    首页    新随笔    联系   管理    订阅  订阅

vc平铺位图

Code
void CFriendDlg::DrawPosImage( CBitmap *pBitmap, CDC *pDC, CPoint pt )
{
    CDC MemDC;
    MemDC.CreateCompatibleDC(pDC);
    CBitmap 
*pOldBitmap = (CBitmap*)MemDC.SelectObject(pBitmap);

    BITMAP bm;
    pBitmap
->GetBitmap(&bm);
    
int li_Width = bm.bmWidth;
    
int li_Height = bm.bmHeight;

    pDC
->BitBlt(pt.x, pt.y, li_Width, li_Height, &MemDC, 0, 0, SRCCOPY);

    MemDC.SelectObject(pOldBitmap);
    MemDC.DeleteDC();
}

//平铺画位图
void CFriendDlg::DrawRangeImage(CBitmap *pBitmap, CDC *pDC, CRect rc)
{
    CDC MemDC;
    BITMAP bm;
    pBitmap
->GetBitmap(&bm);

    
int li_Width = bm.bmWidth;
    
int li_Height = bm.bmHeight;

    MemDC.CreateCompatibleDC(pDC);
    CBitmap
* pOldBitmap = MemDC.SelectObject(pBitmap);

    
int x=rc.left;
    
int y=rc.top;
    
while (y < (rc.Height()+rc.top)) 
    {
        
while(x < (rc.Width()+rc.left)) 
        {
            pDC
->BitBlt(x, y, li_Width, li_Height, &MemDC, 0, 0, SRCCOPY);
            x 
+= li_Width;
        }
        x 
= rc.left;
        y 
+= li_Height;
    }

    MemDC.SelectObject(pOldBitmap);
    MemDC.DeleteDC();
}
posted @ 2009-04-01 00:43  zwicker  阅读(529)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3