| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 744 人关注过本帖
标题:我也要问个问题~问个控件是哪来的?
取消只看楼主 加入收藏
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
结帖率:97.66%
收藏
已结贴  问题点数:20 回复次数:9 
我也要问个问题~问个控件是哪来的?
紅色框框中那個透明的控件~是哪裡來的~或怎設定的?大概只差這個還無從下手~
图片附件: 游客没有浏览图片的权限,请 登录注册
2011-05-26 21:07
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
收藏
得分:0 
VB中的我很清楚~VB中还分2种~但是都不能变透明~用起来感觉差了一大截~
话说顶部那个背景渐层色我都是拿程序带出来的~VB中的丑死了~内建的每个都很丑~

再不行我就干脆自己写字用的OCX的~但是这样麻烦就很多了~

目前光的用户界面的进度还未完成~有些还在猜它是用哪种控件去做的~例如右下角那个可移动视窗大小的控件~我在VB中就没看过~
图片附件: 游客没有浏览图片的权限,请 登录注册



很多图案都要自己画~真是要命~

[ 本帖最后由 wube 于 2011-5-26 23:43 编辑 ]

不要選我當版主
2011-05-26 23:31
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
收藏
得分:0 
下面的ListBox是大概完成60%吧~是自订的控件改的~在下去估计应该是ToolBar做的(要用Button连起来效果也差不多吧)~
再来就是广告~可以用WebBower做~最下面就用StatusBar的去做~然后用每找出所有的按钮后统一改变外观成图案模式(原本VB的缺这功能)~
要另外外挂~其他就是技术上的问题了~2种菜单都做好了等着呼叫来用~打赌他的MEUN绝对是用API做的~
最后就是右下角的拖拉Bar~和ProgresBar的亮点和闪光也是难题~然后就开始要搞资料库联结和搜寻档案这2步骤~

话说怎让Form也吃Frame的数据格式阿~这也是麻烦之一~
话说连自己都都搞不懂就不知道该问什么~但是等自己都搞懂了~也就没什么好问了~编程就是这么孤独的行业~
凡事都要靠自己~

[ 本帖最后由 wube 于 2011-5-27 00:03 编辑 ]

不要選我當版主
2011-05-26 23:59
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
收藏
得分:0 
听您这样说我就不相信我搞不出来了~

不要選我當版主
2011-05-27 09:13
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册


这个就是要放到QQ音乐的菜单原始版本~当然要做修改~
只是最下面的StatusBar最右边的将视窗拉大拉小功能貌似的StatusBar内含的~
有人知道要怎调用出来吗?

图片附件: 游客没有浏览图片的权限,请 登录注册

这是目前的进度~

图片附件: 游客没有浏览图片的权限,请 登录注册

这是测试版~由上至下~最上面还在考虑用哪种控件去实现~进度就是闪光问题比较头疼~第3个红框我想跟第一个会是相同控件去实现~第四个我改用CoolBar去实做了~当然右边按钮也是会等同于其他按钮控件样式~在来分页功能有在设计师模式找到可用的控件~只是不知道怎把它拉过来~ListBox中早先就做好了~这是原始ListBox中修改过的OCX版本(是谁说的QQ只用基本控件的)~在下来用ToolBar解决了(只是背景色还在研究中)~在来就是WebBower拉就有的控件~再来就是左边好解决的StatusBar~右边拉大拉小功能就等高手提点一下了~

忘了说Form外圈因为远本是四角型的~所以把背景改透明~用Shape控件把它框起来~并且改成圆脚~
这样效果就出来了~而顶层的形式渐层效果也是靠程序跑出来的~提示是靠Line控件慢慢画出来的~

到底QQ号的按钮是ImageBox做的~还是CommonButton拉出来改的~实在有点混乱~

最后就是要再写个控件~或生成一个Form去让鼠标触发Move事件出现提示框的效果~类似加强版的的ToolTipText的功能~

[ 本帖最后由 wube 于 2011-5-27 12:41 编辑 ]

不要選我當版主
2011-05-27 12:30
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
收藏
得分:0 
我只是想练习一下~看看只使用软件~可以用VB的模仿到什么程度~看VB中可以做到什么程度吧~

不知道怎人家的StatusBar的都有这个~
图片附件: 游客没有浏览图片的权限,请 登录注册


怎我做出来的就没有~该不会是我把Form.BorderStyle=0~这样就没了吧?
图片附件: 游客没有浏览图片的权限,请 登录注册


这是网络找到的VB的渐层法~要用Line控件去绘图~MFC我不会~
还要在改一下~看能不能所有控件都适用~还没仔细看过~

程序代码:
Option Explicit

Public Type ListInfo
    Title As String
    Author As String
    URL As String
End Type

Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Public Sub LineGradient(ByVal R1 As Single, G1 As Single, B1 As Single, r2 As Single, G2 As Single, B2 As Single, Types As Integer, MyForm As Form)  '线性渐层副程式
'R1,G1,B1为起始的RGB颜色值,R2,G2,B2为终止的RGB颜色值,Types为渐层类型(1~5)

    MyForm.ScaleMode = 1 '以Twip为单位
    MyForm.AutoRedraw = True '开启自动重绘
    MyForm.DrawWidth = 1 '愈小品质愈好,但愈LAG

    Dim Rd As Single, Gd As Single, Bd As Single '储存RGB的单位差值
    Dim i As Integer 'I为For回圈的计次变数
    
    Select Case Types
    
        Case 1 '左到右渐层
        
            Rd = (r2 - R1) / MyForm.ScaleWidth * MyForm.DrawWidth '计算R1与R2的差值,看它每个间隔差了多少数值
            Gd = (G2 - G1) / MyForm.ScaleWidth * MyForm.DrawWidth '计算G1与G2的差值,看它每个间隔差了多少数值
            Bd = (B2 - B1) / MyForm.ScaleWidth * MyForm.DrawWidth '计算B1与B2的差值,看它每个间隔差了多少数值
            
            For i = 0 To MyForm.ScaleWidth Step MyForm.DrawWidth '绘图For回圈
                If R1 > 255 Then R1 = 255 '防溢位判断,R1的范围需为0~255
                If R1 < 0 Then R1 = 0
                If G1 > 255 Then G1 = 255 '防溢位判断,G1的范围需为0~255
                If G1 < 0 Then G1 = 0
                If B1 > 255 Then B1 = 255 '防溢位判断,B1的范围需为0~255
                If B1 < 0 Then B1 = 0
                MyForm.ForeColor = RGB(R1, G1, B1) '更改线条颜色
                MyForm.Line (i, 0)-(i, MyForm.ScaleHeight) '利用MyForm.Line来画线(垂直线)
                R1 = R1 + Rd '原R1加上间隔数值,便可以以固定比例来进行颜色更变
                G1 = G1 + Gd '原G1加上间隔数值,便可以以固定比例来进行颜色更变
                B1 = B1 + Bd '原B1加上间隔数值,便可以以固定比例来进行颜色更变
            Next i
            
        Case 2 '上到下渐层
        
            Rd = (r2 - R1) / MyForm.ScaleHeight * MyForm.DrawWidth '计算R1与R2的差值,看它每个间隔差了多少数值
            Gd = (G2 - G1) / MyForm.ScaleHeight * MyForm.DrawWidth '计算G1与G2的差值,看它每个间隔差了多少数值
            Bd = (B2 - B1) / MyForm.ScaleHeight * MyForm.DrawWidth '计算B1与B2的差值,看它每个间隔差了多少数值
            
            For i = 0 To MyForm.ScaleHeight Step MyForm.DrawWidth '绘图For回圈
                If R1 > 255 Then R1 = 255 '防溢位判断,R1的范围需为0~255
                If R1 < 0 Then R1 = 0
                If G1 > 255 Then G1 = 255 '防溢位判断,G1的范围需为0~255
                If G1 < 0 Then G1 = 0
                If B1 > 255 Then B1 = 255 '防溢位判断,B1的范围需为0~255
                If B1 < 0 Then B1 = 0
                MyForm.ForeColor = RGB(R1, G1, B1) '更改线条颜色
                MyForm.Line (0, i)-(MyForm.ScaleWidth, i) '利用MyForm.Line来画线(水平横线)
                R1 = R1 + Rd '原R1加上间隔数值,便可以以固定比例来进行颜色更变
                G1 = G1 + Gd '原G1加上间隔数值,便可以以固定比例来进行颜色更变
                B1 = B1 + Bd '原B1加上间隔数值,便可以以固定比例来进行颜色更变
            Next i
            
        Case 3 '左中右渐层
        
            Rd = (r2 - R1) / MyForm.ScaleWidth * MyForm.DrawWidth * 2 '计算R1与R2的差值,看它每个间隔差了多少数值(算到中间部分,故MyForm.ScaleWidth要先除2,即Rd乘2)
            Gd = (G2 - G1) / MyForm.ScaleWidth * MyForm.DrawWidth * 2 '计算G1与G2的差值,看它每个间隔差了多少数值(算到中间部分,故MyForm.ScaleWidth要先除2,即Gd乘2)
            Bd = (B2 - B1) / MyForm.ScaleWidth * MyForm.DrawWidth * 2 '计算B1与B2的差值,看它每个间隔差了多少数值(算到中间部分,故MyForm.ScaleWidth要先除2,即Bd乘2)
            
            For i = 0 To MyForm.ScaleWidth / 2 Step MyForm.DrawWidth '绘图For回圈(到MyForm.ScaleWidth的一半)
                If R1 > 255 Then R1 = 255 '防溢位判断,R1的范围需为0~255
                If R1 < 0 Then R1 = 0
                If G1 > 255 Then G1 = 255 '防溢位判断,G1的范围需为0~255
                If G1 < 0 Then G1 = 0
                If B1 > 255 Then B1 = 255 '防溢位判断,B1的范围需为0~255
                If B1 < 0 Then B1 = 0
                MyForm.ForeColor = RGB(R1, G1, B1) '更改线条颜色
                MyForm.Line (i, 0)-(i, MyForm.ScaleHeight) '利用MyForm.Line来画线(垂直线)
                R1 = R1 + Rd '原R1加上间隔数值,便可以以固定比例来进行颜色更变
                G1 = G1 + Gd '原G1加上间隔数值,便可以以固定比例来进行颜色更变
                B1 = B1 + Bd '原B1加上间隔数值,便可以以固定比例来进行颜色更变
            Next i
            
            For i = MyForm.ScaleWidth / 2 To MyForm.ScaleWidth Step MyForm.DrawWidth '绘图For回圈(从MyForm.ScaleWidth的一半到MyForm.ScaleWidth,反转渐层)
                If R1 > 255 Then R1 = 255 '防溢位判断,R1的范围需为0~255
                If R1 < 0 Then R1 = 0
                If G1 > 255 Then G1 = 255 '防溢位判断,G1的范围需为0~255
                If G1 < 0 Then G1 = 0
                If B1 > 255 Then B1 = 255 '防溢位判断,B1的范围需为0~255
                If B1 < 0 Then B1 = 0
                MyForm.ForeColor = RGB(R1, G1, B1) '更改线条颜色
                MyForm.Line (i, 0)-(i, MyForm.ScaleHeight) '利用MyForm.Line来画线(垂直线)
                R1 = R1 - Rd '原R1减掉间隔数值,便可以反转渐层
                G1 = G1 - Gd '原G1减掉间隔数值,便可以反转渐层
                B1 = B1 - Bd '原B1减掉间隔数值,便可以反转渐层
            Next i
            
        Case 4 '上中下渐层
        
            Rd = (r2 - R1) / MyForm.ScaleHeight * MyForm.DrawWidth * 2 '计算R1与R2的差值,看它每个间隔差了多少数值(算到中间部分,故MyForm.ScaleHeight要先除2,即Rd乘2)
            Gd = (G2 - G1) / MyForm.ScaleHeight * MyForm.DrawWidth * 2 '计算G1与G2的差值,看它每个间隔差了多少数值(算到中间部分,故MyForm.ScaleWidth要先除2,即Gd乘2)
            Bd = (B2 - B1) / MyForm.ScaleHeight * MyForm.DrawWidth * 2 '计算B1与B2的差值,看它每个间隔差了多少数值(算到中间部分,故MyForm.ScaleWidth要先除2,即Bd乘2)
            
            For i = 0 To MyForm.ScaleHeight / 2 Step MyForm.DrawWidth '绘图For回圈(到MyForm.ScaleHeight的一半)
                If R1 > 255 Then R1 = 255 '防溢位判断,R1的范围需为0~255
                If R1 < 0 Then R1 = 0
                If G1 > 255 Then G1 = 255 '防溢位判断,G1的范围需为0~255
                If G1 < 0 Then G1 = 0
                If B1 > 255 Then B1 = 255 '防溢位判断,B1的范围需为0~255
                If B1 < 0 Then B1 = 0
                MyForm.ForeColor = RGB(R1, G1, B1) '更改线条颜色
                MyForm.Line (0, i)-(MyForm.ScaleWidth, i) '利用MyForm.Line来画线(水平横线)
                R1 = R1 + Rd '原R1加上间隔数值,便可以以固定比例来进行颜色更变
                G1 = G1 + Gd '原G1加上间隔数值,便可以以固定比例来进行颜色更变
                B1 = B1 + Bd '原B1加上间隔数值,便可以以固定比例来进行颜色更变
            Next i
            
            For i = MyForm.ScaleHeight / 2 To MyForm.ScaleHeight Step MyForm.DrawWidth '绘图For回圈(从MyForm.ScaleHeight的一半到MyForm.ScaleHeight,反转渐层)
                If R1 > 255 Then R1 = 255 '防溢位判断,R1的范围需为0~255
                If R1 < 0 Then R1 = 0
                If G1 > 255 Then G1 = 255 '防溢位判断,G1的范围需为0~255
                If G1 < 0 Then G1 = 0
                If B1 > 255 Then B1 = 255 '防溢位判断,B1的范围需为0~255
                If B1 < 0 Then B1 = 0
                MyForm.ForeColor = RGB(R1, G1, B1) '更改线条颜色
                MyForm.Line (0, i)-(MyForm.ScaleWidth, i) '利用MyForm.Line来画线(水平横线)
                R1 = R1 - Rd '原R1减掉间隔数值,便可以反转渐层
                G1 = G1 - Gd '原G1减掉间隔数值,便可以反转渐层
                B1 = B1 - Bd '原B1减掉间隔数值,便可以反转渐层
            Next i
            
        Case 5 '乱数渐层
        
            Randomize Timer '时间乱数种子
            
            Call LineGradient(Int(Rnd * 255 + 1), Int(Rnd * 255 + 1), Int(Rnd * 255 + 1), Int(Rnd * 255 + 1), Int(Rnd * 255 + 1), Int(Rnd * 255 + 1), Int(Rnd * 4 + 1), MyForm) '再呼叫MyForm.LineGradient,引数为乱数
    
    End Select
End Sub


我有稍微改过参数传递值而已~

[ 本帖最后由 wube 于 2011-5-27 19:41 编辑 ]

不要選我當版主
2011-05-27 19:39
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
收藏
得分:0 
StatusBar控件的Bug吧~拉出来默认都有~但是只要一旦把Form的属性设成无法调整大小~
StatusBar控件的右边那个符号就会自动消失了~但是如果再一次把Form改回来~StatusBar控件右边的那个符号也回不来了~
所以这样怎解?

不要選我當版主
2011-05-28 03:06
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
收藏
得分:0 
回复 12楼 bczgvip
好似要重开新工程才能解决~

不要選我當版主
2011-05-28 14:13
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
收藏
得分:0 
刚在洗澡时~反覆想着今天发的文和各路高手回的文~突然灵光一闪~我想到怎用VB6中实现QQ音乐的介面了~某高手说的API可以让控件背景变透明~
没错这我知道代码怎实现也用过~但是问题是要全体一致才行~不能个别控件做渐层效果~这样画面会看起来很糟~
然后又想到今天有回一位网友问题~VB6只有Form可以搜寻贴在Form第1层上的所有控件(包含该结构)~没错这招我也会~

所以集合以上功能~想出来一个3层控件结构来实现整个QQ音乐的介面~甚至还能顺便用代码实现换肤~而不需要照座标去贴图那么麻烦了~

第1层 - 我可以让整个表格当底色做渐层效果~

第2层 - 我在让贴在表格上的所有控件(载体或个体)全抓出来~全部背景变透明~这样就实现画面统一渐层的效果了~也许特定控件还用平面化
立体和框线显示不显示去突显效果~其实仔细看除了最上层~其他工具栏和SSTab都是个别自己做渐层的~

第3层 - 我在让载体之上的控件再贴上去~当然这层全是使用者看的见的那层~把不需要背景变透明的放在这层即可~维生素B6的搜寻控件限制也是原因之一~
理论上只有车架上的ListBox中和WebBower和工具栏会在这层出现~

而最麻烦的状态栏的右下角错误问题~只能用PictureBox中去解决~然后再加上图片框的点击事件去做表调整的动作~其实让整个表格的元件随着放大缩小调整的代码我也会~
不过这也是有一些限制(可能是我代码还没到家~还要研究)~到这已经是介面最后阶段了~

搞定介面就等于完成第一步~再来就是编内部代码让各控件能够互相联动~再来问题是再使用者设定项页面一定要搞多执行绪~才不会发生一进入设定页面~音乐就不播放的惨状~
用的API播放的MP3的代码我也有了~用的API控制声卡音量的代码我也有了~只是混音部份还想不明白~

在播放前把每首要播的歌载入到内存中~再加上进度的点击和移动事件~应该可以实现要从何起播的效果~

我的收藏那个可拖动的页框功能~之前也有从别的代码中筛滤出来~再加上先前网友发问找档案的用户界面改善~那程序可以改成找电脑中的MP3档案~再把路径存到本机数据库中~
使用的ADO去存取~再丢路径给的API去播放~

那预想中只剩下任务栏上的字体移动~和Label的字体移动~还有PictureBox中的(专辑图案)倒影效果没想通了~

最后就是测试和调试了~一个星期要搞定有点拼~何况这只能利用下班时间做~公司并不搞这玩意儿~只是为了个人的兴趣~真是有点兴奋~虽然都还没完成~

思考再思考~研究再研究~把所有分开的代码集合成一个软件~再把它们个别全拆开分类~这应该会比帮新手回答问题进步更快吧~

不要選我當版主
2011-05-30 00:19
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
收藏
得分:0 
今天才搞好了3种菜单~加一些杂七杂八~又进了一步~不过明天我要去把ListBox中内建的菜单拿掉了~才不会冲突到~好累~光界面就真难搞~
图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册

话说把Frame背景变透明~明明试出来了~放上去却不会变~不稳还要研究~

[ 本帖最后由 wube 于 2011-5-30 21:12 编辑 ]

不要選我當版主
2011-05-30 21:11
快速回复:我也要问个问题~问个控件是哪来的?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026047 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved