📄 bltcpy1.h
字号:
#ifndef FUNCTION
#error not define FUNCTION!
#endif
#ifndef BLT_ROP
#error not define BLT_ROP
#endif
// the src is mono bitmap
static BOOL FUNCTION( _LPBLKBITBLT lpData )
{
LPDWORD lpDestStart;
LPCBYTE lpSrcStart;
DWORD clrFore, clrBack;
int i, j, rows, cols, shiftSrc;
int scanSrcBytes = lpData->lpSrcImage->bmWidthBytes;
int scanDestBytes = lpData->lpDestImage->bmWidthBytes;
BYTE srcMask, srcBitMask;
lpDestStart = (LPDWORD)( lpData->lpDestImage->bmBits + lpData->lprcDest->top * scanDestBytes ) + lpData->lprcDest->left;
lpSrcStart = lpData->lpSrcImage->bmBits + lpData->lprcSrc->top * scanSrcBytes + (lpData->lprcSrc->left >>3);
rows = lpData->lprcDest->bottom - lpData->lprcDest->top;
cols = lpData->lprcDest->right - lpData->lprcDest->left;
clrFore = lpData->solidColor;
clrBack = lpData->solidBkColor;
shiftSrc = lpData->lprcSrc->left & 0x07;
for( i = 0; i < rows; i++ )
{
LPDWORD lpDest = lpDestStart;
LPCBYTE lpSrc = lpSrcStart;
srcMask = *lpSrc++;
srcBitMask = 0x80 >> shiftSrc;
for( j = 0; j < cols; j++ )
{
if( srcBitMask == 0 )
{
srcMask = *lpSrc++;
srcBitMask = 0x80;
}
if( srcMask & srcBitMask )
*lpDest = BLT_ROP( *lpDest, clrFore );
else
*lpDest = BLT_ROP( *lpDest, clrBack );
srcBitMask >>= 1;
lpDest++;
}
lpDestStart = (LPDWORD)( (LPBYTE)lpDestStart + scanDestBytes );
lpSrcStart += scanSrcBytes;
}
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -