//定义图形大小
int iWidth = 240;
int iHeight = 64;
    int iPixel  = 1;
//图形格式参数
    LPBITMAPINFO lpbmih = new BITMAPINFO;
    lpbmih->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
    lpbmih->bmiHeader.biWidth = iWidth;
    lpbmih->bmiHeader.biHeight = iHeight;
    lpbmih->bmiHeader.biPlanes = 1;
    lpbmih->bmiHeader.biBitCount = iPixel;
    lpbmih->bmiHeader.biCompression = BI_RGB;
    lpbmih->bmiHeader.biSizeImage = 0;
    lpbmih->bmiHeader.biXPelsPerMeter = 0;
    lpbmih->bmiHeader.biYPelsPerMeter = 0;
    lpbmih->bmiHeader.biClrUsed = 0;
    lpbmih->bmiHeader.biClrImportant = 0;
lpbmih->bmiColors[0].rgbBlue=0;
lpbmih->bmiColors[0].rgbGreen=0;
lpbmih->bmiColors[0].rgbRed=0;    //创建位图数据
    HDC hdc,hdcMem;
    HBITMAP hBitMap = NULL;
    CBitmap *pBitMap = NULL;
    CDC *pMemDC = NULL;
    BYTE *pBits;
//创建一个系统的设备句柄
    hdc = CreateIC(TEXT("DISPLAY"),NULL,NULL,NULL);
    hdcMem = CreateCompatibleDC(hdc);////////////////////////////////
//创建图形描述结构
    hBitMap = CreateDIBSection(hdcMem,lpbmih,DIB_RGB_COLORS,(void **)&pBits,NULL,0);
    pBitMap = new CBitmap;
    pBitMap->Attach(hBitMap);
// 创建为图
    pMemDC = new CDC;
    pMemDC->Attach(hdcMem);
    pMemDC->SelectObject(pBitMap);
     // CRect rc(0,0,iWidth,iHeight);
pMemDC->SetBkMode(TRANSPARENT);
//图像绘制
//页面背景色
CBrush brushCtl;
brushCtl.CreateSolidBrush(RGB(0,0,0));
   pMemDC->Rectangle(rc);
pMemDC->FillRect(rc,&brushCtl) ;
brushCtl.DeleteObject();
//书写文字
pMemDC->SetBkColor(RGB(0,0,0));
pMemDC->SetTextColor (RGB(255,255,255));

int x,y;
x=rc.CenterPoint().x-rc.Width()/2+5;
y=rc.CenterPoint().y-rc.Height()/2+5;
pMemDC->TextOut(x,y,"图像上要显示的文字");
///
// DrawCurve(pMemDC,rc,"温度:27.6度  多云");
    //保存到文件并创建位图结构
    BITMAPFILEHEADER bmfh;
    ZeroMemory(&bmfh,sizeof(BITMAPFILEHEADER));
    *((char *)&bmfh.bfType) = 'B';
    *(((char *)&bmfh.bfType) + 1) = 'M';
    bmfh.bfOffBits = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER);
    bmfh.bfSize = bmfh.bfOffBits + (iWidth * iHeight) * iPixel / 8;    TCHAR szBMPFileName[128];
    int iBMPBytes = iWidth * iHeight * iPixel / 8;
    strcpy(szBMPFileName,filename);
    CFile file;    if(file.Open(szBMPFileName,CFile::modeWrite | CFile::modeCreate))
    {
        file.Write(&bmfh,sizeof(BITMAPFILEHEADER));
        file.Write(&(lpbmih->bmiHeader),sizeof(BITMAPINFOHEADER));        file.Write(pBits,iBMPBytes);//从这可以得到图像数据在图像的前面插入8个字节,
        file.Close();
    }    pMemDC->DeleteDC();
    delete pMemDC; pMemDC  = NULL;
    delete pBitMap; pBitMap = NULL;
    delete lpbmih;  lpbmih  = NULL;
不能生成图象,为什么??