
VC++中如何使用菜单绘制图像? 10
voidCDemo1View::Ondecrease(CDC*pDC){CDemo1Doc*pDoc=GetDocument();ASSERT_VALID(pDoc);/...
void CDemo1View::Ondecrease(CDC *pDC)
{
CDemo1Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
//建立画笔
CPen cpen,pen;
pen.CreatePen(PS_SOLID,4,RGB(0,0,0));
cpen.CreatePen(PS_SOLID,2,RGB(0,0,255));
pDC->SelectObject(&cpen);
//指定原点
pDC->SetViewportOrg(100,245);
pDC->SetTextColor(RGB(255,0,0));
//绘制横坐标
CString sPIText[]={"-1/2π","","1/2π","π","3/2π","2π","5/2π","3π","7/2π","4π","9/2π","5π"};
for(int n=-1,nTmp=0;nTmp<=660;n++,nTmp+=60)
{
pDC->LineTo(60*n,0);
pDC->LineTo(60*n,-5);
pDC->MoveTo(60*n,0);
pDC->TextOut(60*n-sPIText[n+1].GetLength()*3,16,sPIText[n+1]);
}
pDC->MoveTo(0,0);
CString sTmp;
//绘制纵坐标
for(n=-4,nTmp=0;nTmp<=180;n++,nTmp=60*n)
{
pDC->LineTo(0,60*n);
pDC->LineTo(5,60*n);
pDC->MoveTo(0,60*n);
sTmp.Format("%d",-n);
pDC->TextOut(10,60*n,sTmp);
}
double y,radian;
pDC->SelectObject(&pen);
for(int x=-60;x<600;x++)
{
//弧度=X坐标/曲线宽度*角系数*π
//Y坐标=振幅*曲线宽度*sin(弧度)
radian =x/((double)60*2)*PI;
y=sin(radian)*3*60;
pDC->MoveTo((int)x,(int)y);
pDC->LineTo((int)x,(int)y);
}
cpen.DeleteObject();
pen.DeleteObject();
}
我在ondraw绘制了正弦曲线,然后在菜单increase中改变振幅,
然后总是提示错误“ error C2511: 'Ondecrease' : overloaded member function 'void (class CDC *)' not found in 'CDemo1View'
”怎么回事呢?
菜鸟求助!谢谢!!! 展开
{
CDemo1Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
//建立画笔
CPen cpen,pen;
pen.CreatePen(PS_SOLID,4,RGB(0,0,0));
cpen.CreatePen(PS_SOLID,2,RGB(0,0,255));
pDC->SelectObject(&cpen);
//指定原点
pDC->SetViewportOrg(100,245);
pDC->SetTextColor(RGB(255,0,0));
//绘制横坐标
CString sPIText[]={"-1/2π","","1/2π","π","3/2π","2π","5/2π","3π","7/2π","4π","9/2π","5π"};
for(int n=-1,nTmp=0;nTmp<=660;n++,nTmp+=60)
{
pDC->LineTo(60*n,0);
pDC->LineTo(60*n,-5);
pDC->MoveTo(60*n,0);
pDC->TextOut(60*n-sPIText[n+1].GetLength()*3,16,sPIText[n+1]);
}
pDC->MoveTo(0,0);
CString sTmp;
//绘制纵坐标
for(n=-4,nTmp=0;nTmp<=180;n++,nTmp=60*n)
{
pDC->LineTo(0,60*n);
pDC->LineTo(5,60*n);
pDC->MoveTo(0,60*n);
sTmp.Format("%d",-n);
pDC->TextOut(10,60*n,sTmp);
}
double y,radian;
pDC->SelectObject(&pen);
for(int x=-60;x<600;x++)
{
//弧度=X坐标/曲线宽度*角系数*π
//Y坐标=振幅*曲线宽度*sin(弧度)
radian =x/((double)60*2)*PI;
y=sin(radian)*3*60;
pDC->MoveTo((int)x,(int)y);
pDC->LineTo((int)x,(int)y);
}
cpen.DeleteObject();
pen.DeleteObject();
}
我在ondraw绘制了正弦曲线,然后在菜单increase中改变振幅,
然后总是提示错误“ error C2511: 'Ondecrease' : overloaded member function 'void (class CDC *)' not found in 'CDemo1View'
”怎么回事呢?
菜鸟求助!谢谢!!! 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询