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);
}
   
}
另外,DrawDIB()定义如下:
void CTestDipView::DrawDIB(CDC *pDC, HGLOBAL phDIB, CPalette *pPal,LONG nX,LONG nY)
{
    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);  
}
运行结果是显示原图,每一步的处理结果,纳闷中,谢谢