如果在窗口中显示内存位图的部分内容? 哇你怎么问起这个问题了啊LoadImage函数的几个参数可以控制BitBlt也可以、、、、等我OICQ上告诉你! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 指定LoadImage,BitBlt,StretchBlt()的源左上角和右上角坐标,源宽,源高就可以了! 指定LoadImage,BitBlt,StretchBlt()的源左上角和右上角坐标,源宽,源高就可以了! StretchBlt(hdc,0,200,100,300,fromdc,0,200,100,300,SRCCOPY);应该是这样,对吧 首先将位图读到内存比如 lpDIBBits然后调用如下函数::SetDIBitsToDevice(pDC->m_hDC, // hDC 0, // DestX 0, // DestY bmInfo.bmiHeader.biWidth, // nDestWidth bmInfo.bmiHeader.biHeight, // nDestHeight 0, // SrcX 0, // SrcY 0, // nStartScan bmInfo.bmiHeader.biHeight, // nNumScans lpDIBBits, // lpBits (LPBITMAPINFO)m_Data, // lpBitsInfo DIB_RGB_COLORS); // wUsage用StretchBlt 不行,他会依据第4,5参数显示全部位图(拉长或缩小)至于如何将位图读到内存我这有个例子if you want please tell me your emailgood luck CRect rc(0, 200, 100, 300)HDC hMemDC = ::CreateCompatibleDC(hScrDC);HBITMAP hOldBmp = (HBITMAP)::SelectObject(hMemDC, hMemBitmap);::StretchBlt(hScrDC, nXScr, nYScr, nWidthScr, nHeightScr, hMemDC, rc.left, rc.top, rc.Width(), rc.Height, SRCCOPY);::SelectObject(hMemDC, hOldBmp);::DeleteDC(hMemDC);StretchBlt的作用就是将一个DC中的一部分拷贝到另一个DC 部分显示的问题基本解决,新问题 再加20分。我创建了一个内存位图 memDC, 区域为 CRect(0,200,100,300)那我想在位图中显示一幅图bitmap,大小为: CRect(0,0,50,100)怎么做呢? DC没有大小可言,是是是一个抽象的东西HBITMAP hBitmap = ::CreateCompatibleBitmap(hMemDC, nWidth, nHeight);建议多看MSDN,那是标准,也可以说是真理,你的问题上面都有答案(SDK部分):Platform SDK Documentation\Graphics and Multimedia Services\Windows GDI\Bitmaps 这个用不着DIB吧,一句BitBlt全解决了呀,就像dfbb(嘲风)说的。 sqlite3 编码问题 vc哪个控件可以实现vb中label的autosize属性功能?谢谢! 请问如何响应复选框被选中这个事件 我受不了了,这咋回事???谁能告诉我??? 请Sagansonme领分 如何捕获某些程序的键盘事件 用wise installation system 9做安装时如添加卸载的快捷键。 深圳国电南思 怎么样 RegQueryValueEx函数的问题 为什么不能调用GetWindowModuleFileName? 一个简单的问题?送你20分 求教!!如何禁止鼠标拖动窗口!谢谢!
应该是这样,对吧
首先将位图读到内存比如 lpDIBBits
然后调用如下函数
::SetDIBitsToDevice(pDC->m_hDC, // hDC
0, // DestX
0, // DestY
bmInfo.bmiHeader.biWidth, // nDestWidth
bmInfo.bmiHeader.biHeight, // nDestHeight
0, // SrcX
0, // SrcY
0, // nStartScan
bmInfo.bmiHeader.biHeight, // nNumScans
lpDIBBits, // lpBits
(LPBITMAPINFO)m_Data, // lpBitsInfo
DIB_RGB_COLORS); // wUsage用StretchBlt 不行,他会依据第4,5参数显示全部位图(拉长或缩小)
至于如何将位图读到内存我这有个例子if you want please tell me your email
good luck
HDC hMemDC = ::CreateCompatibleDC(hScrDC);
HBITMAP hOldBmp = (HBITMAP)::SelectObject(hMemDC, hMemBitmap);
::StretchBlt(hScrDC, nXScr, nYScr, nWidthScr, nHeightScr, hMemDC, rc.left, rc.top, rc.Width(), rc.Height, SRCCOPY);
::SelectObject(hMemDC, hOldBmp);
::DeleteDC(hMemDC);StretchBlt的作用就是将一个DC中的一部分拷贝到另一个DC
那我想在位图中显示一幅图bitmap,大小为: CRect(0,0,50,100)
怎么做呢?
HBITMAP hBitmap = ::CreateCompatibleBitmap(hMemDC, nWidth, nHeight);
建议多看MSDN,那是标准,也可以说是真理,你的问题上面都有答案(SDK部分):
Platform SDK Documentation\Graphics and Multimedia Services\Windows GDI\Bitmaps