请问CBrush画刷画出来的图片边缘是黑线,如何去掉该线?
我写的程序必需要去掉它,否则效果很差

解决方案 »

  1.   

    把画笔模式设为BS_NULL,就好了
      

  2.   

    你的BRUSH是不是黑色的啊。创建的时候选别的颜色就行了。
      

  3.   

    在你的dc中,选入一个PS_NULL的画笔,就可以了。
    你选入的位图是不是原来就有黑边
      

  4.   

    选入一个PS_NULL的画笔,或者你的位图本来就有黑边
      

  5.   

    拜托,我说过我只能用画刷,不是画笔!!!
    如果要我说为什么只能用画刷,好,我说清楚点。
    我的View背景是灰色的,我如果用pen画一个矩形,那么矩形的中间覆盖区域
    就会变成白色,我不希望这样,因为它改变了我的背景色,所以我用画刷,画
    个红色的矩形,但是画刷的矩形周围老有黑线,我希望它没有黑色线,只有全部
    的红色
      

  6.   

    你说的是对的。
    因为brush填充的是区域
    而pen是画边框,默认的又是黑色的画笔。
    所以你画出来的有黑色的边框。
    你必须选入一个NULL的画笔,或是一个和区域颜色相同的画笔。
      

  7.   

    void CTestView::OnPaint()
    {
    CPaintDC dc(this); // device context for painting
    // TODO: 在此添加消息处理程序代码
    // 不为绘图消息调用 CListView::OnPaint() CBrush newBrush,*pOldBrush;
    CPen newPen,*pOldPen;

    newBrush.CreateSolidBrush(RGB(255,0,0));
    pOldPen=(CPen *)dc.SelectStockObject(NULL_PEN); pOldBrush=dc.SelectObject(&newBrush);
    dc.SelectStockObject(NULL_PEN);
    dc.Rectangle(50,50,300,300);
    dc.SelectObject(pOldPen);
    dc.SelectObject(pOldBrush);
    }