MFC 基于文本画图时 设置点击按钮画图 不知为何点击非客户区图形消失,求高手指点 菜鸟在此谢过了
voidCDATAView::OnMenuCoast(){CClientDCdc(this);CRectrect;GetClientRect(&rect);dc.SetM...
void CDATAView::OnMenuCoast()
{
CClientDC dc(this);
CRect rect;
GetClientRect(&rect);
dc.SetMapMode(MM_ANISOTROPIC);
dc.SetWindowExt(abs(b)*2.2,abs(a)*2);//设置坐标范围,经度[-179~189],纬度[-86~86],经纬度坐标变换为直角坐标的值
dc.SetViewportExt(rect.right,-rect.bottom);//正北、正东为正方向
dc.SetWindowOrg(-abs(b)*1.1,abs(a));//设置原点在中心
for(i=0;i<sizeof(pDoc->flag)/4-1;i++)
{
dc.MoveTo(int(pDoc->cy[pDoc->flag[i]]),int(pDoc->cx[pDoc->flag[i]]));//画第一个点
testx0=int(pDoc->cx[pDoc->flag[i]]);
testy0=int(pDoc->cy[pDoc->flag[i]]);
for(j=pDoc->flag[i]+1 ;j<pDoc->flag[i+1];j++)
{
dc.LineTo(int(pDoc->cy[j]),int(pDoc->cx[j])); //画其余点
testx=pDoc->cx[j];
testy=pDoc->cy[j];
}
}
}
后来在OnDraw中添加函数,新的问题是不用点击按钮,图片自己就绘制了,哪里出了问题呢,求大家帮忙啊~~~拜托拜托~~~~~~
void CDATAView::OnDraw(CDC* pDC)
{
CDATADoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
OnMenuCoast();
} 展开
{
CClientDC dc(this);
CRect rect;
GetClientRect(&rect);
dc.SetMapMode(MM_ANISOTROPIC);
dc.SetWindowExt(abs(b)*2.2,abs(a)*2);//设置坐标范围,经度[-179~189],纬度[-86~86],经纬度坐标变换为直角坐标的值
dc.SetViewportExt(rect.right,-rect.bottom);//正北、正东为正方向
dc.SetWindowOrg(-abs(b)*1.1,abs(a));//设置原点在中心
for(i=0;i<sizeof(pDoc->flag)/4-1;i++)
{
dc.MoveTo(int(pDoc->cy[pDoc->flag[i]]),int(pDoc->cx[pDoc->flag[i]]));//画第一个点
testx0=int(pDoc->cx[pDoc->flag[i]]);
testy0=int(pDoc->cy[pDoc->flag[i]]);
for(j=pDoc->flag[i]+1 ;j<pDoc->flag[i+1];j++)
{
dc.LineTo(int(pDoc->cy[j]),int(pDoc->cx[j])); //画其余点
testx=pDoc->cx[j];
testy=pDoc->cy[j];
}
}
}
后来在OnDraw中添加函数,新的问题是不用点击按钮,图片自己就绘制了,哪里出了问题呢,求大家帮忙啊~~~拜托拜托~~~~~~
void CDATAView::OnDraw(CDC* pDC)
{
CDATADoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
OnMenuCoast();
} 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询