如何制作一个画斜直线的控件?

韦翔罂 2008-10-02 04:42:15
制作一个画直线的控件,一般的实现方法是:先创建一个控件的矩形窗口,然后在这个窗口里面画一条直线.如果我们要画一条与水平线夹角为45度的长度为40厘米的斜直线段,那么就要创建一个大约宽20厘米高20厘米的窗口,为了画一条斜直线,就要创建一个很大很大的窗口,这样必然会出现一个问题:被该斜直线控件窗口遮挡的那些控件都接收不到鼠标消息了.该如何解决这个问题呢?是否有这样的方法:让一个窗口旋转一个角度来实现画斜线的目的,可是一个控件窗口用什么方法来让它旋转呢?
大家有没有注意到在WORD里面用它所提供的画图控件工具来画一条斜直线,这条直线所占据的屏幕位置很狭窄,看上去好象并不需要创建一个很大的窗口来绘制这条斜线,在斜线后面的控件都能收到鼠标消息,不知道它是怎么实现的?请各位高手指点,非常感谢!
...全文
124 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
maoxianwang 2008-10-03
  • 打赏
  • 举报
回复
根本不需要控件,鉴定完毕
phisherr 2008-10-03
  • 打赏
  • 举报
回复
你需要一个对象,它能存储自己的状态,并且给它个dc它就能把自己显示出来
xsc2001 2008-10-02
  • 打赏
  • 举报
回复
如1 楼所说,真是不明白楼主为什么每画一条线要创建一个窗口控件呢?不明白你要实现功能,你可以同一个窗口上绘制就就可以了,或者对于直线的绘制直接绘制在各个控件的窗口窗口上即可。
Joephia 2008-10-02
  • 打赏
  • 举报
回复
Note:

斜线后面的控件都能收到鼠标消息

这是因为斜线不是控件,而是控件中的一个元素,这些元素集合使用共同的窗口,即控件窗口
jingtan 2008-10-02
  • 打赏
  • 举报
回复
为什么要为每一条线创建一个窗口呢? 和其他东西画在同一个窗口不行嘛

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧