在VB里有方法可以让按钮变成扁平的(FLAT)?----在线等待 :)

oxfordxyc 2002-05-11 01:05:40
在VB里有方法可以让按钮变成扁平的(FLAT)?用flat属性好象没有用!
...全文
287 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
amao2000 2002-05-12
  • 打赏
  • 举报
回复
vb里的捕捉的时间不准确,所以当图片的mousemmove时如果太快了,是不会弹起来的,因为没有捕捉到,要用api函数才能解决问题

http://www.planet-source-code.com/上有例子
oxfordxyc 2002-05-12
  • 打赏
  • 举报
回复
我回努力的,继续学习
jdsbjcailei 2002-05-12
  • 打赏
  • 举报
回复
用toolbar编译一个自己的控件
jokingjun 2002-05-12
  • 打赏
  • 举报
回复
你可以试一试VB的三维控件
在工程——部件--->sheridan 3d controls
oxfordxyc 2002-05-12
  • 打赏
  • 举报
回复
用toolbar确实可以实现,可是就是在一个地方用的控件太多了,比较繁琐
mazhayang 2002-05-12
  • 打赏
  • 举报
回复
我觉得最简单的办法是用toolbar1控件(sp4以上)只是没法获得焦点
lvjack 2002-05-12
  • 打赏
  • 举报
回复
TO: Red_Ice(冰)
是不是像windowsblind那样?
给个例子好么
Red_Ice 2002-05-12
  • 打赏
  • 举报
回复
最好的办法是处理Windows Message:WM_DRAWITEM。这样,不但能做Flat的样式,你可以按自己的需要,想怎么做,就怎么做。因为由自己来绘制按钮,相当的灵活,可以做出Windows XP样式的按钮来。
lmhk 2002-05-12
  • 打赏
  • 举报
回复
使用Toolbar模拟按钮就可以做成扁平的了!
fangyds 2002-05-12
  • 打赏
  • 举报
回复
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Public Const GWL_EXSTYLE = (-20)
Public Const SWP_NOZORDER = &H4
Public Const SWP_FRAMECHANGED = &H20
Public Const WS_EX_CLIENTEDGE = &H200
Public Const WS_EX_STATICEDGE = &H20000
Public Const SWP_NOACTIVATE = &H10
Public Const SWP_NOSIZE = &H1
Public Const SWP_NOMOVE = &H2
'使窗口(可以为任何有hwnd属性的控件)边框成Flat
Sub FlatBorder(ByVal hwnd As Long)
Dim TFlat As Long
TFlat = GetWindowLong(hwnd, GWL_EXSTYLE)
TFlat = TFlat And Not WS_EX_CLIENTEDGE Or WS_EX_STATICEDGE
SetWindowLong hwnd, GWL_EXSTYLE, TFlat
SetWindowPos hwnd, 0, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_NOZORDER Or SWP_FRAMECHANGED Or SWP_NOSIZE Or SWP_NOMOVE
End Sub
mingsi 2002-05-11
  • 打赏
  • 举报
回复
谁有标准一点的呀?到Delphi版里问问吧
qbilbo 2002-05-11
  • 打赏
  • 举报
回复
自己做一个这样的控件不就行了吗?很简单的!
用一个label,四个line,line围在label四周,初始状态时,line不可见,当鼠标移到label上时,line可见,且上方和左方的为白色,右方和下方的为黑色.当鼠标按下时line的颜色倒一下,鼠标释放时,再还原,鼠标从label上移走时,line再变为不可见。
chinesechen 2002-05-11
  • 打赏
  • 举报
回复
是不是可以试试用LINE AND LABLE控件啊!!!
sonicdater 2002-05-11
  • 打赏
  • 举报
回复
用 DrawEdge 函数 , 配合 PICTURE 控件.

你自己去 找找 例子 吧. (到处都有这个例子)
liad 2002-05-11
  • 打赏
  • 举报
回复
要能像HTML里用CSS就好了
oxfordxyc 2002-05-11
  • 打赏
  • 举报
回复
我试试楼上这位兄弟说的 :)
wangwenyou 2002-05-11
  • 打赏
  • 举报
回复
最简单的办法:
1、放一个PictureBox,BorderStyle为0 None;
2、在PictureBox内部放一个ToolBar,Appearence为0 ccFlat,BorderStyle为0 ccNone;
3、在ToolBar中插入你想要的按钮。
oxfordxyc 2002-05-11
  • 打赏
  • 举报
回复
谢谢你们,我的mail:stone@99fst.com QQ:3704864
补丁,你可以现在把代码给我吗?
thirdapple 2002-05-11
  • 打赏
  • 举报
回复
如果不使用外部控件的话, 又不要图片, 那只有直接在PictureBox控件上绘制了
hlsfe2000hjq 2002-05-11
  • 打赏
  • 举报
回复
可以用SSCommand控件,想要就留下邮箱
加载更多回复(10)

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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