For dithering: http://en.wikipedia.org/wiki/Dithering
For Floyd-Steinberg Dithering Algorithm: http://en.wikipedia.org/wiki/Floyd-Steinberg_dithering
1. I implemented this algorithm by the multi-color (RGB) mode, which means such dithering has been executed on each color channel. My sampling bmp files are 256-color mode or true-color mode, with each color 8-bit band width. And my palette is {0, 127 ,255} for each color.
2. About MFC: about 90% percent of my time cost on CBitmap/HBITMAP/CClientDC and so on. In my opinion I don't think AFX team should expose such details to MFC users. Well, maybe it is intended to be used by some professional image processing workers.