MFC中picture显示bmp图片方法

来源:互联网 发布:我知你好未再微盘 编辑:程序博客网 时间:2024/05/16 10:07

pThis->m_pBmpinfo = new BITMAPINFO;//m_pBmpinfo类型为BITMAPINFOmemset(pThis->m_pBmpinfo , 0 , sizeof(BITMAPINFO));BITMAPINFOHEADER *bmpinfoheader = &(pThis->m_pBmpinfo->bmiHeader);bmpinfoheader->biSize = sizeof(BITMAPINFOHEADER);bmpinfoheader->biWidth = pFrameHead->iWidth;//图象宽度bmpinfoheader->biHeight = pFrameHead->iHeight;//图象高度bmpinfoheader->biBitCount = 24;//RGB使用3个字节bmpinfoheader->biCompression = BI_RGB;bmpinfoheader->biSizeImage = pFrameHead->iHeight*pFrameHead->iWidth*3;//RGB每个颜色占一个字节所以乘以3bmpinfoheader->biClrImportant = 0;//填0即可bmpinfoheader->biClrUsed = 0;//填0即可bmpinfoheader->biXPelsPerMeter = 0;//填0即可bmpinfoheader->biYPelsPerMeter = 0;//填0即可bmpinfoheader->biPlanes = 1;//填1即可CRect rect;pThis->m_pDc = pThis->GetDlgItem(IDC_STATIC_VIEW)->GetDC();//得到对话框中picture空间的DC句柄,IDC_STATIC_VIEW为picture控件的资源IDpThis->GetDlgItem(IDC_STATIC_VIEW)->GetClientRect(&rect);SetStretchBltMode(pThis->m_pDc->GetSafeHdc(),COLORONCOLOR);//调整一下显示模式:DC句柄,彩色模式//将图片缩放到画布大小进行显示StretchDIBits(pThis->m_pDc->GetSafeHdc(),//DC控件picture的窗口句柄rect.left , //picture控件的左上角横坐标rect.top , //picture控件的左上角横坐标rect.Width() , //picture控件宽度rect.Height() , //picture控件高度0 , //在picture控件中,从图片的(0,0)的位置开始显示0 , pFrameHead->iWidth ,//显示的图片宽度 pFrameHead->iHeight , //显示图片的高度pThis->m_pFrameBuffer , //图片数据空间pThis->m_pBmpinfo , //图片数据头DIB_RGB_COLORS , //颜色空间SRCCOPY);

0 0
原创粉丝点击