如何将picturebox中的矩形,实心变空心,再空心变实心

深圳的冬天 2019-02-04 01:23:00
本人使用VB6,我现在遇到一个问题,如下图,我用按钮画了2个空心的矩形, 一个大,一个小。现在想实现这样一个功能:
1. 点击picturebox,大矩形变成一个实心的,有填充颜色的,不管什么颜色。这时小矩形也会被实心覆盖;
2. 再点击一下picturebox,这个矩形又恢复成空心的,这时小矩形又可以看见了
3. 如上面反复,点一下空心,点一下又实心。

请问怎么实现呢?
备注:不能用cls,因为我实际开发的软件在picturebox上还有其他图形,不能全抹掉了。


Private Sub Form_Load()
Picture1.Scale (-100, -100)-(100, 100)
End Sub

Private Sub Command1_Click()
Picture1.DrawWidth = 1
Picture1.FillStyle = 1 '//填充类型为空心
Picture1.Line (-40, -40)-(50, 50), , B
Picture1.Line (-30, -30)-(10, 10), , B
End Sub

...全文
405 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
numbermax 2019-03-24
  • 打赏
  • 举报
回复 1
你可以判断鼠标位置,点击的时候如果在目标区域,就执行对应的操作,比如填充。
良朋 2019-02-12
  • 打赏
  • 举报
回复
能否判断 Picture1.FillStyle 的状态? 当它=0时你赋值Picture1.FillStyle = 1 ,反之Picture1.FillStyle = 0? 如果不能直接判断Picture1.FillStyle 的状态你就直接定义一个布尔变量,根据它的状态给Picture1.FillStyle 赋值。
  • 打赏
  • 举报
回复
用过ps吗?知道分层吗?你可以把你的picbox也分个层,当然数据量增大各种不方便操作是肯定的,GDI本身就不是为这些设计的,请使用基于dx的wpf或自行调用dx/opengl。
  • 打赏
  • 举报
回复
自己设计开发控件。只知道在 picturebox 上画静态地点线面,算什么上图系统开发,只能算是最低级的图形练手,离上图系统开发还差许多年时间。而你使用 wpf 等真正的图层控件系统,则可以直接进行开发。
threenewbee 2019-02-05
  • 打赏
  • 举报
回复
引用 1 楼 以专业开发人员为伍 的回复:
自己设计开发控件。只知道在 picturebox 上画静态地点线面,算什么上图系统开发,只能算是最低级的图形练手,离上图系统开发还差许多年时间。而你使用 wpf 等真正的图层控件系统,则可以直接进行开发。
这一番话估计把lz吓傻了。

16,556

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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