我看一本VB书时,课后有这样一个问题:
要求自定义一个控件,创建时需要一个TEXT控件和一个SHAPE控件,然后把SHAPE的FILLCOLOR属性设为蓝色,ActiveX控件的BACKCOLOR设为红色。然后在添加一个自定义的CLICKINRED事件。
然后生成.ico的控件在新建的FORM窗体使用,要达到的效果是点击这个自定义控件的红色部分时弹出一个对话框,点击蓝色时则没有反应。 我现在的问题是不知道如何作判断。
请高手指教,最后把代码写得能运行。谢谢!!
要求自定义一个控件,创建时需要一个TEXT控件和一个SHAPE控件,然后把SHAPE的FILLCOLOR属性设为蓝色,ActiveX控件的BACKCOLOR设为红色。然后在添加一个自定义的CLICKINRED事件。
然后生成.ico的控件在新建的FORM窗体使用,要达到的效果是点击这个自定义控件的红色部分时弹出一个对话框,点击蓝色时则没有反应。 我现在的问题是不知道如何作判断。
请高手指教,最后把代码写得能运行。谢谢!!
控件的代码如下Public Event CLICKINRED()
Private Sub UserControl_Click()
RaiseEvent CLICKINRED
End Sub
form中使用控件的代买如下
Private Sub UserControl11_CLICKINRED()
MsgBox "ok"
End Sub如果你要把弹出对话框写死在控件里,那就这样
Public Event CLICKINRED()
Private Sub UserControl_Click()
msgbox "ok"
End Sub但建议还是在上层来处理,灵活性强
If Point(X, Y) = shpBack.backcolor Then
RaiseEvent Click
End If
End Sub
判断当前的颜色 Point(X, Y)就是了.
---------------------------------------------------------
Montaque==Digitalboy==Houyongfeng==Monkey
If Button <> 2 Then Exit Sub
If X >= shp.Left And X <= shp.Width + shp.Left And Y >= shp.Top And Y <= shp.Height + shp.Top Then
Exit Sub
End If
RaiseEvent ClickInRed
MsgBox "hi"
End Sub
将shape改为label即可满足你的要求