void CTestDipView::OnDraw(CDC* pDC)
{
CTestDipDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
if(m_bIsBMPReady)
{
DrawDIB(pDC,m_phDIB,m_pPal,0,0);
} // 指向DIB的指针
LPSTR lpDIB;
lpDIB = (LPSTR) ::GlobalLock(m_phDIBResult);
if(m_bIsResult)
{
DrawDIB(pDC,m_phDIBResult,m_pPal,DIBWidth(lpDIB)+10,0);
}
}
我的这段程序,运行时,显示处理的图像都给罗列起来了,并没有说是只显示上一步结果.为什么呢?
{
CTestDipDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
if(m_bIsBMPReady)
{
DrawDIB(pDC,m_phDIB,m_pPal,0,0);
} // 指向DIB的指针
LPSTR lpDIB;
lpDIB = (LPSTR) ::GlobalLock(m_phDIBResult);
if(m_bIsResult)
{
DrawDIB(pDC,m_phDIBResult,m_pPal,DIBWidth(lpDIB)+10,0);
}
}
我的这段程序,运行时,显示处理的图像都给罗列起来了,并没有说是只显示上一步结果.为什么呢?
解决方案 »
- 使用List Control的一点点问题
- 基于RichEditCtrl类的对话框程序怎么才能加入标尺的功能?
- VC++中到底什么是对象啊??
- 在ListView中如何使用自定义的ListCtrl?
- 正在深圳找工作,兄弟姐妹们公司有招人的吗?进来看看吧
- 怎样在listbox的每一条里面嵌入一个checkbox?并且这个checkbox还支持更换背景色和字体颜色
- UINT ThreadProc(LPVOID pParam)中的参数在MFC中怎么用呀
- 急,向大家征求一个上大学的意见,希望大家给些意见
- 有人使用过Real Networks SDK吗?
- opengl蒙版程序怎么显示空白呢....
- 求教:如何实现3毫秒(ms)的准确延时~
- 在数据库中检索某条符合条件的记录的问题
没有找到DrawDib函数的定义
应该是函数的使用有问题。
学习
关注
{
LPVOID lpDIBBits;
BOOL bSuccess = FALSE;
BITMAPINFO &bmInfo = *(LPBITMAPINFO)(phDIB);
int nColors = bmInfo.bmiHeader.biClrUsed?bmInfo.bmiHeader.biClrUsed:
1<<bmInfo.bmiHeader.biBitCount; if(bmInfo.bmiHeader.biBitCount>8)
lpDIBBits = (LPVOID)((LPWORD)(bmInfo.bmiColors+bmInfo.bmiHeader.biClrUsed)+
((bmInfo.bmiHeader.biCompression==BI_BITFIELDS)?3:0));
else
lpDIBBits = (LPVOID)(bmInfo.bmiColors+nColors);
if(pPal&&(pDC->GetDeviceCaps(RASTERCAPS)&RC_PALETTE))
{
pDC->SelectPalette(pPal,FALSE);
pDC->RealizePalette();
}
::SetDIBitsToDevice(pDC->m_hDC,
nX,
nY,
bmInfo.bmiHeader.biWidth,
bmInfo.bmiHeader.biHeight,
0,
0,
0,
bmInfo.bmiHeader.biHeight,
lpDIBBits,
(LPBITMAPINFO)phDIB,
DIB_RGB_COLORS);
}
这是DrawDIB()的定义.