| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 795 人关注过本帖, 2 人收藏
标题:在頁框中添加垂直滾動條的實現方法
只看楼主 加入收藏
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
结帖率:100%
收藏(2)
 问题点数:0 回复次数:13 
在頁框中添加垂直滾動條的實現方法
程序代码:
CLEAR ALL
CLEAR
Main()
CLEAR ALL
RETURN 

PROCEDURE Main()
    LOCAL loMainForm
    loMainForm = CREATEOBJECT("_MainForm")
    WITH loMainForm
        .Caption = "頁框嵌入滾動條實例程序"
        .MinWidth = 800
        .MinHeight = 600
        .AutoCenter = .T.
        .Show
    ENDWITH
    READ EVENTS
ENDPROC 

DEFINE CLASS _MainForm AS Form

    ADD OBJECT PageFrame1 AS PageFrame
   
    PROCEDURE Arrange
        LOCAL lnIndex
       
        WITH ThisForm.PageFrame1
            .Top = 5
            .Left = 5
            .Height = ThisForm.Height - .Top - 5
            .Width = ThisForm.Width - .Left - 5
            FOR lnIndex = 1 TO .PageCount
                IF .Pages(lnIndex).ControlCount > 0
                    WITH .Pages(lnIndex).Controls(1)
                        .Top = 0
                        .Left = 0
                        .Height = ThisForm.PageFrame1.Height
                        .Width = ThisForm.PageFrame1.Width
                        .Arrange
                    ENDWITH
                ENDIF
            NEXT
        ENDWITH
       
    ENDPROC
   
    PROCEDURE Activate
        ThisForm.Arrange
    ENDPROC
   
    PROCEDURE Resize
        ThisForm.Arrange
    ENDPROC 

    PROCEDURE Destroy
        CLEAR EVENTS
    ENDPROC
   
    PROCEDURE PageFrame1.Init
        WITH This
            .PageCount = 3
            WITH .Pages(1)
                .AddObject("Container1", "_WithScrollBar")
                .Container1.Visible = .T.
            ENDWITH
        ENDWITH
    ENDPROC
   
ENDDEFINE 

DEFINE CLASS _WithScrollBar AS Container

    ADD OBJECT ScrollBar1 AS OleControl WITH OleClass = "MSComCtl2.FlatScrollBar.2"
    ADD OBJECT Label1 AS Label WITH Height = 25, AutoSize = .T., Caption = "請滾動右側滾動條觀察效果:", Origin_Top = 100
    ADD OBJECT Text1 AS TextBox WITH Height = 25, Width = 100, Origin_Top = 100
   
    PROCEDURE Arrange
        WITH This.Label1
            .Top = .Origin_Top
            .Left = 10
        ENDWITH
        WITH This.Text1
            .Top = .Origin_Top
            .Left = This.Label1.Left + This.Label1.Width
        ENDWITH
        WITH This.ScrollBar1
            .Top = 0
            .Left = This.Width - 22
            .Height = This.Height - 30
        ENDWITH
    ENDPROC
   
    PROCEDURE ScrollBar1.Init
        WITH This
            .Orientation = 0
            .Min = 0
            .Max = 1000
            .SmallChange = 10
            .LargeChange = 50
        ENDWITH
    ENDPROC
   
    PROCEDURE ScrollBar1.Change
        LOCAL lnIndex
       
        FOR lnIndex = 1 TO This.Parent.ControlCount
            WITH This.Parent.Controls(lnIndex)
                IF UPPER(.Name) != UPPER("ScrollBar1")
                    .Top = .Origin_Top - This.Value
                ENDIF
            ENDWITH
        NEXT
       
    ENDPROC
   
ENDDEFINE
收到的鲜花
  • tlliqi2014-03-12 23:53 送鲜花  20朵   附言:辛苦了
搜索更多相关主题的帖子: color 
2014-03-12 23:18
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
不論垂直或水平滾動,都可以仿此方法實現,兩者同時也可以。

授人以渔,不授人以鱼。
2014-03-12 23:24
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
很好
2014-03-12 23:54
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
還有很多可以改進的地方,把這東西做成通用的也可以,祇不過爲了説明原理,簡單地寫成這樣就算了。明白了原理,怎麽都好辦。

授人以渔,不授人以鱼。
2014-03-12 23:58
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2215
专家分:3882
注 册:2007-4-27
收藏
得分:0 
行家一出手,就知有没有。高

只求每天有一丁点儿的进步就可以了
2014-03-13 08:36
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
如果有好的圖標,不用那個ActiveX控件也可以,這樣就不用擔憂發佈時遇到對方沒注冊相應控件的問題。

授人以渔,不授人以鱼。
2014-03-13 12:58
lcthu
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2014-3-10
收藏
得分:0 
太牛了
2014-03-14 09:17
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
不错,作记号备用。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2014-03-14 14:22
antony521
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:170
专家分:175
注 册:2009-8-20
收藏
得分:0 
真不错,可惜鼠标滚轮不能用.
2014-03-14 21:57
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
滾動條控件不接受鼠標滾輪事件的,因爲水平滾動條不知道應該怎麽定義它的滾動方向。要用也可以,重寫這個控件!

授人以渔,不授人以鱼。
2014-03-14 22:06
快速回复:在頁框中添加垂直滾動條的實現方法
数据加载中...
 
   



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

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