【VC++】对话框里绘图

例如我有pDC->MoveTo(0,0);pDC->LineTo(500,800);类似这样代码,想在对话框中画图显示出来。请问一般需要在什么控件中画图?是否和控件的ID... 例如我有pDC->MoveTo(0,0);pDC->LineTo(500,800);类似这样代码,想在对话框中画图显示出来。
请问一般需要在什么控件中画图?是否和控件的ID命名有关?

我选择了一个Static控件,ID设为IDC_COORD,大小500*500,就以上面的代码来说,执行后,画出线条的大小,超出了这个控件的范围,怎样才能保证绘图限制在控件范围之内?而超出的部分以滚动条控件显示?

请赐教,不胜感激

有例子程序最好,邮箱是sansummer@qq.com,可接收大附件
展开
 我来答
魔高丈
2009-03-10 · TA获得超过9506个赞
知道大有可为答主
回答量:2066
采纳率:0%
帮助的人:3463万
展开全部
绘图一般使用Picture控件,其他Static控件也可以

为了不将图画出控件,可以这样做:
用双缓冲绘图,创建一个和控件一样大小的兼容位图就可以了。

代码发给你了,具体请参考代码。
chihpin
2009-03-10 · TA获得超过2627个赞
知道大有可为答主
回答量:4903
采纳率:0%
帮助的人:4165万
展开全部
超出范围得自己判断,然后根据实际情况来LineTo
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
何处淬吴钩
2009-03-10 · TA获得超过5044个赞
知道大有可为答主
回答量:2947
采纳率:50%
帮助的人:2402万
展开全部
对控件不是十分了解。我的理解,贸然使用pDC->LineTo(500,800)可能会出现意外,因为现在你不知道窗口大小。至于在控件中作图,直接这样做应该是有点困难,可以自己设计个类继承自Static,然后在这个类里绘图,这样比较容易控制。另外,对话框中直接可以实现类似的绘图,不一定非要使用控件。重载onpaint即可。即使如此pDC->LineTo(500,800)这样到底会出什么问题我也不清楚(添加滚动条除外),没试过。所以最好还是先GetClientRect()下,看看窗口范围。

补充:CStatic好像不支持滚动条,但对话框是支持的,你把窗口尺寸弄大点就ok了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chichujn
2009-03-10 · TA获得超过663个赞
知道小有建树答主
回答量:1534
采纳率:50%
帮助的人:1101万
展开全部
如果你是指自绘风格的控件的话,设置控件属性为OWNER_DRAW
然后在父窗口的OnDrawItem(int nCtlID,LPDRAWITEMSTRUCT lpDrawItemStruct)
或者在控件的DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)里绘图
lpDrawItemStruct->rcItem就是允许的绘图范围.当然可以更改一下映射模式为自定义,这样绘图起来更方便.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式