首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

普普通通对话框中onpaint()画出的曲线超出所调用的picture控件

2012-09-06 
普通对话框中onpaint()画出的曲线超出所调用的picture控件目的:我想调用数组来画(X,Y)点图,显示到一个对话

普通对话框中onpaint()画出的曲线超出所调用的picture控件
目的:我想调用数组来画(X,Y)点图,显示到一个对话框的下部分。
先调用picture控件,获得此控件的位置,然后在次区域画(X,Y)点,并依次连成直线。
这些已实现,但当某个Y值很大时,就会出现绘制到picture控件外而影响了别的控件,哪位高手知道怎么办吗?怎样才能截断picture控件外的曲线,而又不影响picture控件内的曲线?我是新手。非常感谢!
void CMydlg::OnPaint() 
{
  CPaintDC dc(this);

  CWnd *pPicCtrl = GetDlgItem(IDC_STATIC_PIC);
// 获取Pictrue控件在屏幕上的位置
  CRect rc;
  pPicCtrl->GetWindowRect(&rc);
  // 获取Pictrue控件在对话框上的位置
  ScreenToClient(rc);
……
……
  CPoint Pl[50] ;
  for(i=0;i<10;i++)
Pl[i] = CPoint((int)( x ),(int)( y ));
  dc.Polyline(Pl, 10);

}

[解决办法]
可以通过CRgn设置剪切区域
然后pDC->SelectObject(rgn)
当然要记得画完把绘图区域设回来

热点排行