VC控件绘图问题

来源:百度知道 编辑:UC知道 时间:2024/05/14 19:17:27
我用CClientDC dc(GetDlgItem(XXXXX)) 的方法获取了一个静态文本框的dc,并用此在其中绘图,我用y=sin(2*pi*x)绘制正弦曲线,可是随着x的增长,曲线画到控件以外的地方了,我还用了
CWnd *pWnd=GetDlgItem(XXXXX);
CDC *pDC=pWnd->GetDC();的方法,用pDC绘图,结果也是一样的,请问,既然已经得到了控件的DC,用它绘图为什么还会画到控件外面,(如果是在单文档的程序里,获取了视图DC后,怎么画都在视图区里)用什么方法可以避免呢?谢谢!

没什么好办法让程序自动判断出界,只好自己用代码控制绘制不出界

CWnd *pWnd = GetDlgItem(IDC_STATIC);
CRect rt;
pWnd ->GetClientRect(&rt);
CDC *pDC = pWnd->GetDC();

pDC->MoveTo(rt.left ,20);
pDC->LineTo(rt.right,20);

好象一般不会出现这样的问题。

如果有,你可以给父窗口发送一个重绘消息