我在一个CView中画线,建立CPen的时候用:
CPen lpen(PS_SOLID,3,m_color);
CPen* pOldPen=ClientDC.SelectObject(&lpen);但画出来的线不受m_color的控制,全是黑色的。哪里出问题了吗?谢谢

解决方案 »

  1.   

    最好是把ClientDC申请,到CleintDC析构之间的代码都列出来,尤其是m_color相关的。仅这两句没问题。
      

  2.   

    我估计你的设置CPen的位置不对,你应该在你画图的函数中设置线型等,如可以在OnDraw()函数中,另外,你的m_color是什么,设置对了没有
    我也写过这样的代码,代码如下:
    CTest::OnPaint()
    {
       CPaintDC dc(this);
       
       COLORREF m_color;
       m_color=0x00ff0000;
       CPen lpen(PS_SOLID,3,m_color);
       CPen* pOldPen=dc.SelectObject(&lpen);   dc.MoveTo(0,0);
       dc.LineTo(100,100);
    }我就可以控制呀,没有什么问题呀,你试一下
      

  3.   

    HPEN hPen; //定义画笔句柄
    hPen=CreatePen(PS_SOLID,1,RGB(255,0,0));     //RGB后为颜色(当前值为红色)
      

  4.   

    CPen lpen(PS_SOLID,3,RGB(0,0,255));
    CPen* pOldPen=ClientDC.SelectObject(&lpen); //当前值为蓝色