BitBlt从彩色hDC到单色hDC?

Pri*_*lia 1 winapi gdi visual-c++

我正在从一个8位彩色DC到单色DC进行BitBlt.问题是在单色DC中只有值为255的像素被转换为白色.如何指定阈值,以便任何值大于128的像素在单色DC中显示为白色.

Lio*_*gan 6

你不能.

根据MFC CDC :: BitBltMDSN页面:

要将颜色转换为单色,BitBlt会将与背景颜色匹配的像素设置为白色,并将所有其他像素设置为黑色.BitBlt使用颜色设备上下文的前景色和背景色将颜色转换为单色.

和CDC :: BitBlt调用:: BitBlt:

_AFXWIN_INLINE BOOL CDC::BitBlt(int x, int y, int nWidth, int nHeight, CDC* pSrcDC, int xSrc, int ySrc, DWORD dwRop)
{
    ASSERT(m_hDC != NULL);
    return ::BitBlt(m_hDC, x, y, nWidth, nHeight, pSrcDC->GetSafeHdc(), xSrc, ySrc, dwRop);
}
Run Code Online (Sandbox Code Playgroud)