为什么我的动态曲线不能运行

sybtjp 2008-06-17 01:39:40
void CDrawSin::DrawSin(CDC *pDC)
{
CRect rect;
GetClientRect(rect);

CPen pen_Grid(PS_DOT,1,m_Pen);
pDC->SelectObject(&pen_Grid);
int i = 0;
for(i=rect.top;i<rect.Height();i+=5)
{
pDC->MoveTo(rect.left,rect.top);
pDC->LineTo(rect.right,rect.top);

}
for(i=rect.left;i<rect.Width();i+=5)
{
pDC->MoveTo(rect.left,rect.top);
pDC->LineTo(rect.left,rect.bottom);


}


for(i=0;i<1000;i++)
{
//m_lCount[i]=500+500*sin(3.14*m_now/180);
pDC->MoveTo(3+i,(int)(200+80*sin(100*6.28*(i))));
pDC->LineTo(3+i,(int)(200+80*sin(100*6.28*(i))));
}






}

void CDrawSin::MemDraw()
{
// CRect rect;

// 获取绘制坐标的文本框
// CWnd* pWnd = GetDlgItem(IDC_STATIC);

// pWnd->GetClientRect(&rect);
// 指针
// pDC = pWnd->GetDC();
// pWnd->Invalidate();
// pWnd->UpdateWindow();

//pDC->Rectangle(&rect);

CRect rect;
GetClientRect(rect);
//内存绘图
CBitmap m_MemBitmap;
CBitmap* pOldBmp = NULL;
m_MemDC.CreateCompatibleDC(pDC);
m_MemBitmap.CreateCompatibleBitmap(pDC,rect.right,rect.bottom);
pOldBmp = m_MemDC.SelectObject(&m_MemBitmap);
m_MemDC.BitBlt(rect.left,rect.top,rect.right,rect.bottom,pDC,0,0,SRCCOPY);
DrawSin(&m_MemDC);
pDC->BitBlt(rect.left,rect.top,rect.right,rect.bottom,&m_MemDC,0,0,SRCCOPY);

m_MemDC.SelectObject(pOldBmp);
m_MemDC.DeleteDC();
m_MemBitmap.DeleteObject();
}
我把上述代码写到了一个继承自CWnd类,然后在对话框的PICTURE里实现.可是为什么一调用就出错啊?
...全文
100 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
xlzxlich 2008-06-21
  • 打赏
  • 举报
回复
for(i=0;i <1000;i++)
{
//m_lCount[i]=500+500*sin(3.14*m_now/180);
pDC->MoveTo(3+i,(int)(200+80*sin(100*6.28*(i))));
pDC->LineTo(3+i,(int)(200+80*sin(100*6.28*(i))));
}

==============
没试过上面的代码,不知道MoveTo和LineTo为同一个点时是否会打点?!
改成:
pDC->MoveTo(30,200);

for(i=1;i <1000;i++)
{
//m_lCount[i]=500+500*sin(3.14*m_now/180);
pDC->LineTo(3+i,(int)(200+80*sin(100*6.28*(i))));
}
如何
菜牛 2008-06-17
  • 打赏
  • 举报
回复
在MemDraw中,没看到pDC怎么来的。最好从OnPaint中把DC传递给MemDraw。

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧