请教:本人参考了SDK帮助文档,写了段代码,就是文本输出(指定位置,字体,SolidBrush),各种图形格式都行,当为黑白图片时,就没有任何改变,且第二次执行时,会出错(好象是创建画刷时)?各位大侠多多帮忙!!!!

解决方案 »

  1.   

    我开始就用缺省的SolidBrush blackBrush(255,0,0,0)也是不对。
      

  2.   

    HDC dc = ::GetDC();
    HDC dcMem;
    dcMem = ::CreateCompatibleDC(dc); LOGBRUSH logbr;
    memset(&logbr, 0, sizeof(LOGBRUSH));
    logbr.lbColor = RGB(255,0,0);
    logbr.lbStyle = BS_SOLID;
    HBRUSH hBrush = CreateBrushIndirect(&logbr);
    HBRUSH oldbr = (HBRUSH)SelectObject(dcMem, hBrush);一般这种可能是资源释放的问题最后要
    //把旧的brush选回
    SelectObject(dcMem, oldbrush);
    //删除dc
    ::DeleteDC(dcMem);以及
    DeleteObject(hBrush);
      

  3.   

    Font myFont(L"Arial",16);
    SolidBrush blackBrush(Color(255,0,0,0));
    [
    ]
      

  4.   

    Font myFont(L"Arial",16);
    SolidBrush blackBrush(Color(255,0,0,0));
    [
    Image image(fileName);
    Image *pImage = image.Clone();
    ]pImage->DrawString(&myFont,位置,&blackBrush,str);差不多就是这样?
    除了单色图象均没有问题
      

  5.   

    已查清,Graphics graphics(pImage),当pImage所存储的位图格式不符合要求时,graphics无效。