MFC-StretchBlt把源DC拷贝到目标DC(缩放拷贝)

 

复制代码
    PAINTSTRUCT ps = {0};
    HDC hdc;

    switch (message)
    {
    
    case WM_PAINT: 
        hdc = ::BeginPaint(m_hWnd, &ps);
        HBITMAP hbmp = (HBITMAP)::LoadImage(NULL, _T("D:\\bb\\tu\\1.bmp"), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE| LR_DEFAULTSIZE| LR_CREATEDIBSECTION);
        HDC hdcmen= ::CreateCompatibleDC(hdc);//创建内存DC
        HBITMAP holdbmp= (HBITMAP)::SelectObject(hdcmen, hbmp);//把位图放到内存DC
        BITMAP bmp;
        int n = ::GetObject(hbmp, sizeof(BITMAP), &bmp);//获取位图信息

        RECT rect;
        ::GetClientRect(m_hWnd, &rect);//获取窗口客户区的坐标
        int width = rect.right - rect.left;
        int height = rect.bottom - rect.top;
                
        BOOL bb = StretchBlt(hdc,0,0, width, height, hdcmen,0,0,bmp.bmWidth,bmp.bmHeight, SRCCOPY);//把源DC拷贝到目标DC
        /*缩放拷贝
        参数1:HDC hdcDest       目标DC句柄
        参数2:int nXOriginDest  指定目标矩形左上角的X轴坐标,按逻辑单位表示坐标
        参数3:int nYOriginDest  指定目标矩形左上角的Y轴坐标,按逻辑单位表示坐标
        参数4:int nWidthDest    指定目标矩形的宽度,按逻辑单位表示宽度
        参数5:int nHeightDest   指定目标矩形的高度,按逻辑单位表示高度
        参数6:HDC hdcSrc        源DC句柄
        参数7:int nXOriginSrc   指向源矩形区域左上角的X轴坐标,按逻辑单位表示坐标
        参数8:int nYOriginSrc   指向源矩形区域左上角的Y轴坐标,按逻辑单位表示坐标
        参数9: int nWidthSrc    指定源矩形的宽度,按逻辑单位表示宽度
        参数10:int nHeightSrc   指定源矩形的高度,按逻辑单位表示高度
        参数11:DWORD dwRop      指定要进行的光栅操作。光栅操作码定义了系统如何在输出操作中组合颜色,这些操作包括刷子、源位图和目标位图等对象
                        SRCCOPY:将源矩形区域直接拷贝到目标矩形区域
                        其它看:https://baike.baidu.com/item/StretchBlt/6377777?fr=aladdin 

        返回值:如果函数执行成功,那么返回值为非零,如果函数执行失败,那么返回值为零
        */
        
        ::SelectObject(hdcmen, holdbmp);
        DeleteObject(hdcmen);

        ::EndPaint(m_hWnd, &ps);
        break;

    }
复制代码

 

 

 

 

 

 

 

posted @   天子骄龙  阅读(140)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
历史上的今天:
2019-04-24 Arduino-常用指令
2019-04-24 第十章第三节 物体的浮沉条件及应用
点击右上角即可分享
微信分享提示