📄 bcb_g17.htm
字号:
ASSERT_VALID(pDoc);</font></font></p>
<p> <font lang="ZH-CN" size="3"></font><font size="3"><font face="宋体">
// TODO: add draw code for native data here</font></font></p>
<p> <font lang="ZH-CN" size="3"></font><font face="宋体"><font size="3">
m_DibMem = pDoc->m_Buf;//</font><font lang="ZH-CN" size="3">得到</font><font size="3">DIB</font></font><font lang="ZH-CN" size="3" face="宋体">的内存</font></p>
<p> <font lang="ZH-CN" size="3"></font><font size="3"><font face="宋体">
if (m_DibMem == NULL)</font></font></p>
<p> <font lang="ZH-CN" size="3"></font><font lang="ZH-CN" size="3" face="宋体">
{</font></p>
<p> <font lang="ZH-CN" size="3"></font><font size="3"><font face="宋体">
//AfxMessageBox("Error in m_DibMem");</font></font></p>
<p> <font lang="ZH-CN" size="3"></font><font size="3"><font face="宋体">
return;</font></font></p>
<p> <font lang="ZH-CN" size="3"></font><font lang="ZH-CN" size="3" face="宋体">
}</font></p>
<p> <font lang="ZH-CN" size="3"></font><font face="宋体"><font size="3">
UINT offset = pDoc->m_Off; //</font><font lang="ZH-CN" size="3">得到</font><font size="3">DIB</font></font><font lang="ZH-CN" size="3" face="宋体">数据的偏移</font></p>
<p> <font lang="ZH-CN" size="3"></font><font size="3"><font face="宋体">
int xDst,yDst,dxDst,dyDst,xSrc,ySrc,dxSrc,dySrc;</font></font></p>
<p> <font lang="ZH-CN" size="3"></font><font size="3"><font face="宋体">
LPBITMAPINFOHEADER lpbi;</font></font></p>
<p> <font lang="ZH-CN" size="3"></font><font size="3"><font face="宋体">
LPVOID lpDibMem;</font></font></p>
<p> <font lang="ZH-CN" size="3"></font><font size="3"><font face="宋体">
LPVOID lpbits=NULL;</font></font></p>
<p> <font lang="ZH-CN" size="3"></font><font size="3" face="宋体">
// get the Windows width & height </font><font lang="ZH-CN" size="3" face="宋体">得到窗口的宽高</font></p>
<p> <font lang="ZH-CN" size="3"></font><font size="3"><font face="宋体">
RECT rect;</font></font></p>
<p> <font lang="ZH-CN" size="3"></font><font size="3"><font face="宋体">
GetClientRect(&rect);</font></font></p>
<p> <font lang="ZH-CN" size="3"></font><font size="3"><font face="宋体">
xDst = yDst = 0;</font></font></p>
<p> <font lang="ZH-CN" size="3"></font><font size="3"><font face="宋体">
dxDst = rect.right - rect.left;</font></font></p>
<p> <font lang="ZH-CN" size="3"></font><font size="3"><font face="宋体">
dyDst = rect.bottom - rect.top;</font></font></p>
<p> <font lang="ZH-CN" size="3"></font><font face="宋体"><font size="3">
// Get Dib info</font><font lang="ZH-CN" size="3">得到</font><font size="3">DIB</font></font><font lang="ZH-CN" size="3" face="宋体">的信息</font></p>
<p> <font lang="ZH-CN" size="3"></font><font size="3"><font face="宋体">
xSrc = ySrc =0;</font></font></p>
<p> <font lang="ZH-CN" size="3"></font><font size="3" face="宋体">
lpDibMem = GlobalLock(m_DibMem);//</font><font lang="ZH-CN" size="3" face="宋体">锁定内存得到指针</font></p>
<p> <font lang="ZH-CN" size="3"></font><font face="宋体"><font size="3">
lpbi = (LPBITMAPINFOHEADER)lpDibMem;//</font><font lang="ZH-CN" size="3">得到</font><font size="3">DIB</font></font><font lang="ZH-CN" size="3" face="宋体">信息</font></p>
<p> <font lang="ZH-CN" size="3"></font><font size="3"><font face="宋体">
dxSrc = lpbi->biWidth; </font></font></p>
<p><font face="宋体" size="3">
dySrc = lpbi->biHeight; </font></p>
<p><font face="宋体" size="3">
lpbits = (LPSTR)lpDibMem + offset - sizeof(BITMAPFILEHEADER);</font></p>
<p> <font lang="ZH-CN" size="3"></font><font face="宋体"><font size="3">
// Draw Dib</font><font lang="ZH-CN" size="3">绘</font></font><font size="3" face="宋体">DIB</font></p>
<p> <font lang="ZH-CN" size="3"></font><font size="3"><font face="宋体">
HDC hdc = NULL;</font></font></p>
<p> <font lang="ZH-CN" size="3"></font><font size="3"><font face="宋体">
hdc = pDC->m_hDC;</font></font></p>
<p> <font lang="ZH-CN" size="3"></font><font size="3"><font face="宋体">
/*</font></font></p>
<p> <font lang="ZH-CN" size="3"></font><font face="宋体"><font size="3">
// Using SetDIBToDevice</font><font lang="ZH-CN" size="3">使用</font><font size="3">SetDIBToDevice</font></font><font lang="ZH-CN" size="3" face="宋体">函数为对照</font></p>
<p> <font lang="ZH-CN" size="3"></font><font size="3"><font face="宋体">
int line = SetDIBitsToDevice(hdc,<br>
xDst,<br>
yDst,<br>
dxSrc,<br>
dySrc,<br>
xSrc,<br>
ySrc,<br>
0,<br>
dySrc,<br>
lpdib,//lpbits,<br>
(LPBITMAPINFO)lpbi,<br>
DIB_RGB_COLORS);</font></font></p>
<p><font size="3" face="宋体">
if(0 == line)</font><br>
<font lang="ZH-CN" size="3" face="宋体"> </font>
<font lang="ZH-CN" size="3" face="宋体">{</font></p>
<p> <font lang="ZH-CN" size="3"></font><font size="3"><font face="宋体">
AfxMessageBox("Error in SetDIBsToDevice");</font></font></p>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -