VB image控件的效果

我做一个酒店管理系统,想把房间全部用图片显示在窗体上,用按钮背景不好看,用image控件背景到是好看了,可是点击的时候什么效果都没有,哪位大哥能帮帮我。不用特别美观的效果... 我做一个酒店管理系统,想把房间全部用图片显示在窗体上,用按钮背景不好看,用image控件背景到是好看了,可是点击的时候什么效果都没有,哪位大哥能帮帮我。不用特别美观的效果,至少点击的时候要知道我已经选择了该控件吧!
感谢zhenghanxi的回答,我试了一下你的方法,还不错,但用image控件数组就不行,能不能把你的代码改一下,最好有注释,谢谢你了!
展开
 我来答
zhenghanxi
2009-05-14 · TA获得超过422个赞
知道小有建树答主
回答量:268
采纳率:0%
帮助的人:258万
展开全部
哒哒哒在窗体上沿着image四周画个框怎么样?
可以用listview控件呀,跟你贴图的效果一样,如果自己写也可以,不过没必要,画个框多简单啊!下面的代码是使image变蓝,你参考下吧(不支持ico格式,而且gif,bmp效果也不好,jpg还可以。image控件没有hdc属性,不能画图,如果自己写,建议用picturebox控件):
'新建窗体,添加image1 ,(你image里的图像是一样的吗?)
Private Declare Function GetBitmapBits Lib "gdi32" (ByVal hBitmap As Long, ByVal dwCount As Long, lpBits As Any) As Long '引用API
Private Declare Function SetBitmapBits Lib "gdi32" (ByVal hBitmap As Long, ByVal dwCount As Long, lpBits As Any) As Long
Dim bit1() As Byte, bit2() As Byte 'bit1存储常态的图片,bit2存储点下时的图片
Private Sub Form_Load()
Me.ScaleMode = 3 '像素模式
ReDim bit1(1 To Image1(0).Height * Image1(0).Width * 3) '重定义数组
ReDim bit2(1 To Image1(0).Height * Image1(0).Width * 3)
GetBitmapBits Image1(0), UBound(bit1), bit1(1) '将图片位元存储在bit1
For i = 1 To UBound(bit1) Step 3 '将原图红、绿分量减小一半后存储在bit2
bit2(i) = bit1(i)
bit2(i + 1) = 0.5 * bit1(i + 1)
bit2(i + 2) = 0.5 * bit1(i + 2)
Next
End Sub

Private Sub Image1_Click(Index As Integer)
If Val(Image1(Index).Tag) = 0 Then '如果常态
Image1(Index).Tag = 1 '设置标记
SetBitmapBits Image1(Index), UBound(bit2), bit2(1) '显示点下时的图片
Else '如果点下
Image1(Index).Tag = 0
SetBitmapBits Image1(Index), UBound(bit1), bit1(1) '显示常态图片
End If
Image1(Index).Refresh '刷新
End Sub
百度网友44e696f
2009-05-13 · TA获得超过944个赞
知道小有建树答主
回答量:671
采纳率:0%
帮助的人:310万
展开全部
Image控件或PictureBox控件都可以,在控件的MouseDown事件中设置控件的BorderStyle属性值为1,MouseUp事件中设置控件的BorderStyle属性值为0

改变颜色似乎不太容易,你查查看有没有设置图片效果的API函数吧,或者每张图片都对应一个被选中的效果图,选中的时候加载这张效果图
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
iwanttogetit
2009-05-14 · 超过17用户采纳过TA的回答
知道答主
回答量:43
采纳率:0%
帮助的人:0
展开全部
在这个控件的CLICK事件中,简单写一些代码,改变一下控件的外观就可以了。
===========================
Private Sub Image1_Click()
Image1.BorderStyle = 1
End Sub
在其他事件中可以通过
Image1.BorderStyle = 0
来恢复
==============================
你可以改变image1的背景颜色,也可以在image后边放一个比它大一点的标签label控件,改变label背景颜色来实现
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式