回 帖 发 新 帖 刷新版面

主题:请问如何更换画笔颜色

我是这样做的,不晓得好不好?

    CPen m_pen,*m_oldPen;
    m_pen.CreatePen(PS_SOLID,1,RGB(0,0,255));//改为蓝色画笔
    m_oldPen=pDC->SelectObject(&m_pen);//首次选择画笔

我是这样更换的:
    //改为红色画笔
    m_pen.CPen::CPen(PS_SOLID,1,RGB(255,0,0));
    pDC->SelectObject(m_pen);

注意SelectObject的参数是m_pen,而不是&m_pen;
问题出来了,当用两种参数的时候,编译都不报错,而用&m_pen时,程序运行则出错。。
用m_pen做参数时,程序正常,还能成功更换画笔颜色。而SelectObject的参数是CPen*呀,这是怎么回事了?

回复列表 (共1个回复)

沙发

当你第二次调用SelectObject恢复的时候是不用&的!

我来回复

您尚未登录,请登录后再回复。点此登录或注册