大家帮忙看看,一个简单的VC问题~

来源:百度知道 编辑:UC知道 时间:2024/05/29 14:11:21
void CTwoView::OnDraw(CDC* pDC)
{
CTwoDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
int i;
pDC->TextOut(20,20,"point");
pDC->SetPixel(100,20,RGB(255,0,0));
pDC->SetPixel(110,20,RGB(0,255,0));
pDC->SetPixel(120,20,RGB(0,0,255));
pDC->SetPixel(130,20,RGB(255,255,0));
pDC->SetPixel(140,20,RGB(255,0,255));
pDC->SetPixel(150,20,RGB(0,255,255));
pDC->SetPixel(160,20,RGB(0,0,0));

struct tagColor
{
int r,g,b;
}color[7]={{255,0,0},{0,255,0},{0,0,255},{255,255,0},{255,0,255},{0,255,255},{0,0,0}};
CPen pNewPen;
CPen pOldPen;
for(i=0;i<7;i++)
{
pNewPen=new CPen;
if(pNewPen->CreatePen(PS_SOLID,2,RGB(color[i].r,color[i].g,color[i].b))
{
pOldPen=pDC->SelectObject(pNewPen);
pDC->MoveTo(20,60+i*10);
pDC->LineTo(160,60+i*10);
pD

->是什么东西,还有你确定错误是这个函数中的吗

【pNewPen=new CPen; 】
pNewPen必须是指针,不然在前面加上&。

【pNewPen->CreatePen(PS_SOLID,2,RGB(color[i].r,color[i].g,color[i].b)】
因为pNewPen不是指针,所以这里不能用“->”,而应该用“.”。
另外,这里pOldPen也要定义成指针的形式。
解决方法:

CPen pNewPen;
CPen pOldPen;
改成
CPen*pNewPen;
CPen*pOldPen;