b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

bitblt_bitblt stretchblt_bitblt中源设备的像素(10)

电脑杂谈  发布时间:2017-01-20 00:03:23  来源:网络整理

ReleaseDC (hwnd,hdc);

if (f)

InvalidateRect ( hwnd,NULL,TRUE);

break;

显示设备绘制

下面例子用DrawDibrealize函数在显示一个位图序列之前准备DrawDib DC.

hdc = GetDC(hwnd);

DrawDibBegin(hdd,hdc,dxDest,dyDest,lpbi,dxSrc,dySrc,NULL);

DrawDibRealize(hdd,hdc,fBackground);

DrawDibDraw(hdd,hdc,xDst,yDst,dxDst,dyDst,lpbi,lpBits,

xSrc,ySrc,dxSrc,dySrc,DDF_SAME_DRAW|DDF_SAME_HDC);

DrawDibDraw(hdd,hdc,xDst,yDst,dxDst,dyDst,lpbi,lpBits,

xSrc,ySrc,dxSrc,dySrc,DDF_SAME_DRAW|DDF_SAME_HDC);

DrawDibDraw(hdd,hdc,xDst,yDst,dxDst

下面给出一个实例的关键片段加以说明:(在Visual C++ 4.2 下Windows95或Windows NT环境下通过。)

void CTestDrawDibView::OnDraw(CDC* pDC)

{

CTestDrawDibDoc* pDoc = GetDocument();//得到文档指针

ASSERT_VALID(pDoc);

// TODO: add draw code for native data here

m_DibMem = pDoc->m_Buf;//得到DIB的内存

if (m_DibMem == NULL)

{

//AfxMessageBox("Error in m_DibMem");

return;

}

UINT offset = pDoc->m_Off; //得到DIB数据的偏移

int xDst,yDst,dxDst,dyDst,xSrc,ySrc,dxSrc,dySrc;

LPBITMAPINFOHEADER lpbi;

LPVOID lpDibMem;

LPVOID lpbits=NULL;

// get the Windows width & height 得到窗口的宽高

RECT rect;

GetClientRect(&rect);

xDst = yDst = 0;

dxDst = rect.right - rect.left;

dyDst = rect.bottom - rect.top;

// Get Dib info得到DIB的信息

xSrc = ySrc =0;

lpDibMem = GlobalLock(m_DibMem);//锁定内存得到指针 lpbi = (LPBITMAPINFOHEADER)lpDibMem;//得到DIB信息

dxSrc = lpbi->biWidth;

dySrc = lpbi->biHeight;

lpbits = (LPSTR)lpDibMem + offset - sizeof(BITMAPFILEHEADER);

// Draw Dib绘DIB

HDC hdc = NULL;

hdc = pDC->m_hDC;

/*

// Using SetDIBToDevice使用SetDIBToDevice函数为对照

int line = SetDIBitsToDevice(hdc,


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-27468-10.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 魏征
      魏征

      某国际学校的老师出了一道开放性问题

    热点图片
    拼命载入中...