BYTE gray;
for (int i=0;i<800*600;i++)
{
gray=(m_pImageBuffer[0]+m_pImageBuffer[1]+m_pImageBuffer[2])/3;
*m_pImageBuffer=gray;
m_pImageBuffer++;
*m_pImageBuffer++=gray;
*m_pImageBuffer++=gray;
}
StretchDIBits()。。_pImageBuffer是图象缓冲去指针!BYTE类型

解决方案 »

  1.   

    *m_pImageBuffer++=gray;
    *m_pImageBuffer++=gray;真是涉及到运算符优先级的考题了.你这样.可能会看到五彩缤纷的世界..
    建议你找个例子好好看看.
      

  2.   

    gray=(m_pImageBuffer[3*i]+m_pImageBuffer[3*i+1]+m_pImageBuffer[3*i+2])/3;
    m_pImageBuffer[3*i]=gray;m_pImageBuffer[3*i+1]=gray;
    m_pImageBuffer[3*i+2]=gray;不熟悉指针就  搞好数组。
      

  3.   

    http://www.vckbase.com/code/listcode.asp?mclsid=7&sclsid=701&page=2