MFC对话框画线的问题紧急求教!!
最近学习用MFC的对话框画图,现在完成了点击按钮将位图显示在图片控件上。现在的问题就是我在对话框上画线但是画的线条被图片控件挡住了,我画线是通过显示方式在对话框上显示。求...
最近学习用MFC的对话框画图,现在完成了点击按钮将位图显示在图片控件上。现在的问题就是我在对话框上画线但是画的线条被图片控件挡住了,我画线是通过显示方式在对话框上显示。求教怎么让画出的线条显示到图片控件上而不是被它挡住,小弟刚学MFC,希望高手们帮帮忙,解决了问题还可以加分!下面是我画线部分的的代码
CRect DrawLine;
GetDlgItem(IDC_PIC)->GetWindowRect(&DrawLine);
CClientDC dc(this);
CPen pen(PS_SOLID,1,RGB(255,0,0));
dc.SelectObject(&pen);
CPoint point;
point.x=155;
point.y=155;
dc.MoveTo(50,50);
dc.LineTo(point); 展开
CRect DrawLine;
GetDlgItem(IDC_PIC)->GetWindowRect(&DrawLine);
CClientDC dc(this);
CPen pen(PS_SOLID,1,RGB(255,0,0));
dc.SelectObject(&pen);
CPoint point;
point.x=155;
point.y=155;
dc.MoveTo(50,50);
dc.LineTo(point); 展开
3个回答
展开全部
你好,用控件来显示位图时是会遮盖对话框上绘画的线条的,好像可以通过设置图片控件的属性来实现,可以去研究一下;实在不行用先用GDI函数把位图显示在对话框上,然后画线条,线条就不会被覆盖了,后面的方法肯定可以的。
更多追问追答
追问
谢谢回答!第一种办法我试了下发现不可以..
关于用GID函数来将位图显示到对话框上,程序该怎么写呢,因为是初学之前的程序也是copy的所以不太懂。大侠能给出可以运行的代码吗?或者怎么在我之前的代码上修改函数。我的显示位图的代码是(由于字数要求,我截个图吧)
追答
你好,把位图文件显示在对话框上可以用你贴出来的代码,不过比较麻烦,以前我用过,觉得比较麻烦,现在不用了,建议你用IPicture接口,该接口可以把不同的图像格式显示在屏幕上,不仅仅是位图格式的图像,用它来显示比较方便,只需要图像文件名及路径即可,如果你需要,我给你部分代码,由于字数限制,我无法在这里贴代码,给我一联系方式。
展开全部
方法:
第一: 继承这个PIC控件,重写onpaint函数,在里面处理画图;
第二: 获取PIC控件的dc,而不是this(父窗体);
第三: 设置控件隐藏,也可以达到目的,但是实际上画得图像是画在了父窗体上;
第四: 不用PIC控件,利用双缓冲,把所画的图片贴在PIC原在的位置上;
当然,利用双缓冲可以用在4中方法中。
第一: 继承这个PIC控件,重写onpaint函数,在里面处理画图;
第二: 获取PIC控件的dc,而不是this(父窗体);
第三: 设置控件隐藏,也可以达到目的,但是实际上画得图像是画在了父窗体上;
第四: 不用PIC控件,利用双缓冲,把所画的图片贴在PIC原在的位置上;
当然,利用双缓冲可以用在4中方法中。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用图片控件的DC画。
CDC *pDC = GetDlgItem(IDC_PIC)->GetWindowDC();
pDC->MoveTo(50,50);
pDC->LineTo(point);
CDC *pDC = GetDlgItem(IDC_PIC)->GetWindowDC();
pDC->MoveTo(50,50);
pDC->LineTo(point);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询