HBITMAP COLAgent::ReplaceColor (HBITMAP hBmp,COLORREF cOldColor,COLORREF cNewColor)
{
HBITMAP RetBmp=NULL;
if (hBmp)
{
HDC BufferDC=CreateCompatibleDC(NULL); // 源位图DC
if (BufferDC)
{
SelectObject(BufferDC,hBmp);//选入DC中
HDC DirectDC=CreateCompatibleDC(NULL); // 目标DC
if (DirectDC)
{
// 获取源位图大小
BITMAP bm;
GetObject(hBmp, sizeof(bm), &bm);
// 初始化BITMAPINFO信息,以便使用CreateDIBSection
BITMAPINFO RGB32BitsBITMAPINFO;
ZeroMemory(&RGB32BitsBITMAPINFO,sizeof(BITMAPINFO));
RGB32BitsBITMAPINFO.bmiHeader.biSize=sizeof(BITMAPINFOHEADER);
RGB32BitsBITMAPINFO.bmiHeader.biWidth=bm.bmWidth;
{
HBITMAP RetBmp=NULL;
if (hBmp)
{
HDC BufferDC=CreateCompatibleDC(NULL); // 源位图DC
if (BufferDC)
{
SelectObject(BufferDC,hBmp);//选入DC中
HDC DirectDC=CreateCompatibleDC(NULL); // 目标DC
if (DirectDC)
{
// 获取源位图大小
BITMAP bm;
GetObject(hBmp, sizeof(bm), &bm);
// 初始化BITMAPINFO信息,以便使用CreateDIBSection
BITMAPINFO RGB32BitsBITMAPINFO;
ZeroMemory(&RGB32BitsBITMAPINFO,sizeof(BITMAPINFO));
RGB32BitsBITMAPINFO.bmiHeader.biSize=sizeof(BITMAPINFOHEADER);
RGB32BitsBITMAPINFO.bmiHeader.biWidth=bm.bmWidth;