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

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

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

---- 四、CViewBimap类编程要点

---- 1. 在CViewBimap类中添加视频函数等成员

HDRAWDIB m_hDrawDib; // 视频函数

HANDLEmhBitsSrc; // 位图文件句柄(内存)

LPSTR mpBitsSrc; // 位图文件地址(内存)

BITMAPINFOHEADER *mpBitmapInfo; // 位图信息头

---- 2. 在CViewBimap类构造函数中添加打开视频函数

---- m_hDrawDib= DrawDibOpen();

---- 3. 在CViewBimap类析构函数中添加关闭视频函数

if( m_hDrawDib != NULL)

{

DrawDibClose( m_hDrawDib);

m_hDrawDib = NULL;

}

---- 4. 在CViewBimap类图形显示函数OnPaint中添加GraphicDraw()

voidCViewBitmap::OnPaint()

{

CPaintDC dc(this); // device context for painting

GraphicDraw( );

}

voidCViewBitmap::GraphicDraw( void )

{

CClientDC dc(this); // device context for painting

BITMAPFILEHEADER *pBitmapFileHeader;

ULONG bfoffBits= 0;

CPoint Wid;

// 图形文件名有效 (=0 BMP)

if( mBitmapFileType < ID_BITMAP_BMP ) return;

// 图形文件名有效 (=0 BMP)

// 准备显示真彩位图

pBitmapFileHeader= (BITMAPFILEHEADER *) mpBitsSrc;

bfoffBits= pBitmapFileHeader->bfOffBits;

// 使用普通函数显示位图

if( m_hDrawDib == NULL || mDispMethod == 0)

{

HBITMAP hBitmap=::CreateDIBitmap(dc.m_hDC,

mpBitmapInfo, CBM_INIT, mpBitsSrc+bfoffBits,

(LPBITMAPINFO) mpBitmapInfo,DIB_RGB_COLORS);

// 建立位图

HDC hMemDC=::CreateCompatibleDC(dc.m_hDC);// 建立内存

HBITMAP hBitmapOld= SelectBitmap(hMemDC, hBitmap); // 选择对象

// 成员CRect mDispR用于指示图形显示区域的大小.

// 成员CPoint mPos用于指示图形显示起始位置坐标.

if( mPos.x > (mpBitmapInfo- >biWidth - mDispR.Width() ))

mPos.x= mpBitmapInfo->biWidth - mDispR.Width() ;

if( mPos.y > (mpBitmapInfo- >biHeight- mDispR.Height()))

mPos.y= mpBitmapInfo- >biHeight- mDispR.Height();

if( mPos.x < 0 ) mPos.x= 0;


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

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

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