我定义了一个函数:
void CMyStatic::DrawCurve(CPaintDC &dc)
然后在里调用
void CMyStatic::OnPaint()
{
CPaintDC dc(this);
DrawCurve(dc);
}我在后面想调用DrawCurve(dc)但是只能声明CClientDC &dc,不能声明成CPaintDC &dc,所以就无法调用DrawCurve(dc),重新写一个DrawCurve(CClientDC &dc)不现实,想问大家有没有别的方法?谢谢
void CMyStatic::DrawCurve(CPaintDC &dc)
然后在里调用
void CMyStatic::OnPaint()
{
CPaintDC dc(this);
DrawCurve(dc);
}我在后面想调用DrawCurve(dc)但是只能声明CClientDC &dc,不能声明成CPaintDC &dc,所以就无法调用DrawCurve(dc),重新写一个DrawCurve(CClientDC &dc)不现实,想问大家有没有别的方法?谢谢
void CMyStatic::OnPaint()
{
CPaintDC dc(this); CDC MEMDC;
MEMDC的创建略.....
DrawCurve(&MEMDC); dc.bitblt(x,y,宽,高,&MEMDC,0,0,SRCCPY);}
void CMyStatic::DrawCurve(CDC &memdc)
{
在这里操作memdc
}
//CPaintDC里面包含了BeginPaint/EndPaint的调用。CClientDC相当于GetDC调用
调用 void CMyStatic::OnPaint()
{
CPaintDC dc(this);
DrawCurve(&dc);
}或者其他地方:
CClientDC dc(this);
DrawCurve(&dc);
error C2664: 'DrawCurve' : cannot convert parameter 1 from 'class CPaintDC' to 'class CDC *'
error C2664: 'DrawCurve' : cannot convert parameter 1 from 'class CClientDC' to 'class CDC *'
咋回事?
看错误提示就知道了,你真的按5楼说的改了吗?好好检查 void CMyStatic::DrawCurve(CDC *pDc), 再看看你的!!
void CMyStatic::OnPaint()
{
CPaintDC dc(this);
DrawCurve(dc);
} void CMyStatic::DrawCurve(CDC *pDc)
{}void CMyStatic::OnMouseMove(UINT nFlags, CPoint point)
{
CClientDC dc(this);
DrawCurve(dc);
}
?????