【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,可接收大附件 展开
请问一般需要在什么控件中画图?是否和控件的ID命名有关?
我选择了一个Static控件,ID设为IDC_COORD,大小500*500,就以上面的代码来说,执行后,画出线条的大小,超出了这个控件的范围,怎样才能保证绘图限制在控件范围之内?而超出的部分以滚动条控件显示?
请赐教,不胜感激
有例子程序最好,邮箱是sansummer@qq.com,可接收大附件 展开
4个回答
展开全部
超出范围得自己判断,然后根据实际情况来LineTo
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
对控件不是十分了解。我的理解,贸然使用pDC->LineTo(500,800)可能会出现意外,因为现在你不知道窗口大小。至于在控件中作图,直接这样做应该是有点困难,可以自己设计个类继承自Static,然后在这个类里绘图,这样比较容易控制。另外,对话框中直接可以实现类似的绘图,不一定非要使用控件。重载onpaint即可。即使如此pDC->LineTo(500,800)这样到底会出什么问题我也不清楚(添加滚动条除外),没试过。所以最好还是先GetClientRect()下,看看窗口范围。
补充:CStatic好像不支持滚动条,但对话框是支持的,你把窗口尺寸弄大点就ok了。
补充:CStatic好像不支持滚动条,但对话框是支持的,你把窗口尺寸弄大点就ok了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果你是指自绘风格的控件的话,设置控件属性为OWNER_DRAW
然后在父窗口的OnDrawItem(int nCtlID,LPDRAWITEMSTRUCT lpDrawItemStruct)
或者在控件的DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)里绘图
lpDrawItemStruct->rcItem就是允许的绘图范围.当然可以更改一下映射模式为自定义,这样绘图起来更方便.
然后在父窗口的OnDrawItem(int nCtlID,LPDRAWITEMSTRUCT lpDrawItemStruct)
或者在控件的DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)里绘图
lpDrawItemStruct->rcItem就是允许的绘图范围.当然可以更改一下映射模式为自定义,这样绘图起来更方便.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询