在设计时,为什么UserControl无法被"点选"? 自己做了一个UserControl,BackStyle=透明,Windowless=true,在设计时,无法通过点击来选择该控件,只能"框选"或通过在"属性"下拉列表中进行选择.这是为什么? 如何能够被"点选" 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 但是我需要透明效果呀,所以又必须Windowless=true,有其它办法解决这个问题吗? 只这一句就可实现透明 UserControl,BackStyle=透明呀?虽然不可以点选,可是可以用鼠标框选。 "只这一句就可实现透明 UserControl,BackStyle=透明呀?"-------------------------------------------------------简单的讲,我是想做一个Label。我实现的方法大致如下:在Usercontrol设计时,Usercontrol.BackStyle=0UserControl.ClipBehavior = 0Usercontrol.Windowless=TruePrivate Sub UserControl_Paint() UserControl.Cls Print "Caption"End Sub如果仅仅设置Usercontrol.BackStyle=0,"Caption"无法显示。有什么办法可以不设置Usercontrol.Windowless=True,就可以显示"Caption"吗?因为Windowless=True,则hwnd=0,不仅无法点选,而且很多API都用不了了。"虽然不可以点选,可是可以用鼠标框选。"------------------------------------------------------- 上帖写错了,特此更正:"只这一句就可实现透明 UserControl,BackStyle=透明呀?"-------------------------------------------------------简单的讲,我是想做一个Label。我实现的方法大致如下:在Usercontrol设计时,Usercontrol.BackStyle=0UserControl.ClipBehavior = 0Usercontrol.Windowless=TruePrivate Sub UserControl_Paint() UserControl.Cls Print "Caption"End Sub如果仅仅设置Usercontrol.BackStyle=0,"Caption"无法显示。有什么办法可以不设置Usercontrol.Windowless=True就可以显示"Caption"吗?因为Windowless=True,则hwnd=0,有如下问题:1.无法点选2.很多API都不成。3.MouseIcon无法实现"虽然不可以点选,可是可以用鼠标框选。"-------------------------------------------------------不能点选,同时也就不能拖动控件,在窗体设计时很不方便呀! 你直接在窗体放一个label令label1.BackStyle=0,这时label也变的透明了label1.caption=“内容"估计这样能实现你的要求 哈哈,我猜到你要说这种办法.但是,不行!问题:多数字体显示不全。不信您可以试试:Font="宋体"/常规/小五号Font="揩体"/常规/小五号...目前,不能"点选"是次要的,关键是因为Windowless=True,导致usercontol.Mouse_click无法响应及MouseIcon无法正常使用.还有没有其它办法? 对!看来,用API试试。别先结帖。我研究研究! 我发现做透明控件与做不透明控件在很多地方有不同之处,而且处理这些不同之处相当困难,我做个总结:问题一:Caption如果要实现透明控件类似于Label的Caption,我现在有两个方案,但是这两个方案都有点问题:方案1:Print "Caption" Private Sub UserControl_Paint() UserControl.Cls Print "Caption" End Sub 为了实现Usercontrol的透明,则必须对以下属性做设置(缺一不可): Usercontrol.BackStyle=0 UserControl.ClipBehavior = 0 Usercontrol.Windowless=True 好,问题出来一大堆...具体的请看问题二、问题三、问题四!方案2:在UserControl中直接放Label: 为了实现Usercontrol的透明,必须将Usercontrol和Label都设置为BackStyle="0" 问题:多数字体显示不全。如字体="宋规五"、字体="楷规五",除非字体是粗体,且字号较大,则不 怎么看不出字体不全。?????:不知道还有没有其它办法可以实现透明的Caption?问题二:BackStyle当BackStyle=0(透明)时,UserControl不响应MouseDown、MouseUp、MouseClick事件,只是HitTest事件;同时MousePointer、MouseIcon属性无效。为什么MousePointer、MouseIcon无效?而Label都有这些属性和事件呀??????:如何判断透明控件的MouseDown、MouseUp、MouseClick事件?如何给透明控件添加MouseIcon、MousePoiont属性?问题三:Windowless如果Windowless=True,则Usercontrol的hwnd=0,这就导致:1、很多API都用不成;比如,通常判断鼠标在控件上的“移进”(MouseOver),“移出”(MouseOut),都用Setcapture。这下,就只能通过timer控件和GetCursorPos来完成了,比用Setcapture多用了一个Timer,不爽!2、在设计时,控件不可以“点选”在设计时,无法通过点击来选择该控件,只能"框选"或通过在"属性"下拉列表中进行选择。?????:Windowless=True时,如何实现“点选”?问题四:AutoRedraw当Usercontrol.BackStyle=0 And UserControl.ClipBehavior = 0 And Usercontrol.Windowless=True时,无法设置AutoRedraw=True。?????但是我又需要用到AutoRedraw=True,如需要用存储在内存中的图象进行重绘,怎么办? yefanqiu(叶帆) :我将这些问题另起了一帖,不如我先将该帖结了,到那里讨论?http://expert.csdn.net/Expert/topic/1650/1650531.xml?temp=.7091638 好的,我研究了一天,也没有什么收获。不过我问一下:Usercontrol.Windowless=True 一定要设么?我不设,也可以实现透明也? 100分,不少哦!一定要锁定频道:http://expert.csdn.net/Expert/topic/1650/1650531.xml?temp=.7091638 中国史上死得最搞笑的几位皇帝 关于SQL循环插入 关于winsock的dataarrival事件 又是 insert into 代码错误问题,还请高人解答 请问在COM+应用中如何实现异步处理? 一个textbox的简单问题 简单题目 vb是不是学会的语法和哪么很难的函数,就要自己的想法写下来的吗? 请谈谈考勤机数据处理的经验,,,, 一个打开数据库方法的问题!! 还是picturebox输入文字的问题(在线等) 如何用模式子窗体控制父窗体中的控件?
-------------------------------------------------------
简单的讲,我是想做一个Label。我实现的方法大致如下:
在Usercontrol设计时,
Usercontrol.BackStyle=0
UserControl.ClipBehavior = 0
Usercontrol.Windowless=TruePrivate Sub UserControl_Paint()
UserControl.Cls
Print "Caption"
End Sub
如果仅仅设置Usercontrol.BackStyle=0,"Caption"无法显示。有什么办法可以不设置Usercontrol.Windowless=True,就可以显示"Caption"吗?因为Windowless=True,则hwnd=0,不仅无法点选,而且很多API都用不了了。"虽然不可以点选,可是可以用鼠标框选。"
-------------------------------------------------------
"只这一句就可实现透明 UserControl,BackStyle=透明呀?"
-------------------------------------------------------
简单的讲,我是想做一个Label。我实现的方法大致如下:
在Usercontrol设计时,
Usercontrol.BackStyle=0
UserControl.ClipBehavior = 0
Usercontrol.Windowless=TruePrivate Sub UserControl_Paint()
UserControl.Cls
Print "Caption"
End Sub
如果仅仅设置Usercontrol.BackStyle=0,"Caption"无法显示。有什么办法可以不设置Usercontrol.Windowless=True就可以显示"Caption"吗?
因为Windowless=True,则hwnd=0,有如下问题:
1.无法点选
2.很多API都不成。
3.MouseIcon无法实现"虽然不可以点选,可是可以用鼠标框选。"
-------------------------------------------------------
不能点选,同时也就不能拖动控件,在窗体设计时很不方便呀!
问题:多数字体显示不全。
不信您可以试试:
Font="宋体"/常规/小五号
Font="揩体"/常规/小五号
...目前,不能"点选"是次要的,关键是因为Windowless=True,导致usercontol.Mouse_click无法响应及MouseIcon无法正常使用.
还有没有其它办法?
看来,用API试试。别先结帖。我研究研究!
问题一:Caption
如果要实现透明控件类似于Label的Caption,我现在有两个方案,但是这两个方案都有点问题:
方案1:Print "Caption"
Private Sub UserControl_Paint()
UserControl.Cls
Print "Caption"
End Sub
为了实现Usercontrol的透明,则必须对以下属性做设置(缺一不可):
Usercontrol.BackStyle=0
UserControl.ClipBehavior = 0
Usercontrol.Windowless=True
好,问题出来一大堆...具体的请看问题二、问题三、问题四!
方案2:在UserControl中直接放Label:
为了实现Usercontrol的透明,必须将Usercontrol和Label都设置为BackStyle="0"
问题:多数字体显示不全。如字体="宋规五"、字体="楷规五",除非字体是粗体,且字号较大,则不 怎么看不出字体不全。
?????:不知道还有没有其它办法可以实现透明的Caption?问题二:BackStyle
当BackStyle=0(透明)时,UserControl不响应MouseDown、MouseUp、MouseClick事件,只是HitTest事件;同时MousePointer、MouseIcon属性无效。为什么MousePointer、MouseIcon无效?而Label都有这些属性和事件呀?
?????:如何判断透明控件的MouseDown、MouseUp、MouseClick事件?如何给透明控件添加MouseIcon、MousePoiont属性?问题三:Windowless
如果Windowless=True,则Usercontrol的hwnd=0,这就导致:
1、很多API都用不成;
比如,通常判断鼠标在控件上的“移进”(MouseOver),“移出”(MouseOut),都用Setcapture。这下,就只能通过timer控件和GetCursorPos来完成了,比用Setcapture多用了一个Timer,不爽!
2、在设计时,控件不可以“点选”
在设计时,无法通过点击来选择该控件,只能"框选"或通过在"属性"下拉列表中进行选择。
?????:Windowless=True时,如何实现“点选”?问题四:AutoRedraw
当Usercontrol.BackStyle=0 And UserControl.ClipBehavior = 0 And Usercontrol.Windowless=True时,无法设置AutoRedraw=True。
?????但是我又需要用到AutoRedraw=True,如需要用存储在内存中的图象进行重绘,怎么办?
我将这些问题另起了一帖,不如我先将该帖结了,到那里讨论?
http://expert.csdn.net/Expert/topic/1650/1650531.xml?temp=.7091638
不过我问一下:
Usercontrol.Windowless=True 一定要设么?
我不设,也可以实现透明也?
http://expert.csdn.net/Expert/topic/1650/1650531.xml?temp=.7091638