VisualFreeBASIC基础——状态栏的使用

    状态栏可以通过状态栏设置窗口来添加设置窗格(Pane),在设计窗口放入状态栏,点击属性栏里的Status(窗格)属性的的下拉按钮,即会弹出状态栏设置窗口,如图:

    通过状态栏设置窗口可以添加或插入窗格,可以设置每个窗格的文本,提示,对齐方式,样式和宽度以及图标。设置示例:

一、属性

1、Icon(图标)

    设置或者返回窗格的图标,参数为窗格的序号,从0开始。

2、Text(文本)

    设置或返回窗格的文本,参数为窗格的序号,从0开始。

3、TipText(提示文本)

    设置或返回窗格的提示文本,参数为窗格的序号,从0开始。

二、方法

1、AddPane(添加窗格)

    添加一个窗格,如果使用代码添加窗格时要注意,状态栏默认就有一个已经添加的窗格。

    该方法的函数原型如下:

Function AddPane(zText As CWStr, zTipText As CWStr = "", uType As Long = 0, nWidth As Long = 0, ResImg As String = "") As Long '多窗格 新增窗格,返回新添加的索引(从0开始),失败返回 -1 {3.0 绘制的文本带有边框,显示为低于窗口的平面。.SBT_NOBORDERS 绘制的文本没有边框。.SBT_OWNERDRAW 自绘.SBT_POPOUT 绘制的文本带有边框,看起来比窗口的平面高。.SBT_RTLREADING 文本将以与父窗口中的文本相反的方向显示。.SBT_NOTABPARSING 制表符将被忽略。}

2、RemovePane(移除窗格)

    移除一个窗格。该方法的函数原型如下:

Function RemovePane(nIndex As Long) As Long '删除一个窗格,从0开始的索引,返回剩余窗格数 ,失败返回 0 ,窗格数最小为1 ,最后1个不可以删除

3、GetPartsCount(获取窗格数)

    获取窗格个数。该方法的函数原型如下:

Function GetPartsCount() As Long '返回部件总数

三、事件

1、NM_Click事件

Function Form1_Status1_NM_Click(hWndForm As hWnd, hWndControl As hWnd,pNM As NMMOUSE) As LResult  '用户已在控件单击鼠标左键
 
   Function = FALSE ' 返回 TRUE 表示已处理了鼠标点击,不需要系统处理。返回 FALSE 允许系统默认处理点击。
End Function

    状态栏单击事件。

2、NM_DBlclk事件

Function Form1_Status1_NM_DBlclk(hWndForm As hWnd, hWndControl As hWnd,pNM As NMMOUSE) As LResult  '用户已在控件双击鼠标左键
 
   Function = False '根据自己需要修改(函数必须有个返回,否则编译会警告)
End Function

       状态栏双击事件。

四、示例

    根据状态栏属性,设置一个例程,包括添加窗格,移除窗格,修改文本等。窗体如下:

代码如下:

Sub Form1_Command2_BN_Clicked(hWndForm As hWnd, hWndControl As hWnd)  '单击
    Status1.RemovePane 0
End Sub

Sub Form1_Command1_BN_Clicked(hWndForm As hWnd, hWndControl As hWnd)  '单击
    Status1.AddPane "增加的窗格","窗格提示",0,-1 '新增的窗格添加在原有窗格的后面,如果是最末尾一个,则需要设置长度为-1,表示后面的长度都是该窗格的。
End Sub

Sub Form1_Command3_BN_Clicked(hWndForm As hWnd, hWndControl As hWnd)  '单击
    Status1.Text(0) = "新的窗格文本"
End Sub

Sub Form1_Timer1_WM_Timer(hWndForm As hWnd, wTimerID As Long)  '定时器
    Status1.Text(1) = NowString  '用定时器刷新时间
End Sub

Function Form1_Status1_NM_Click(hWndForm As hWnd, hWndControl As hWnd,pNM As NMMOUSE) As LResult  '用户已在控件单击鼠标左键
    AfxMsg "您单击了状态栏的第" & pNM.dwItemSpec + 1 & "个窗格"
    Function = FALSE ' 返回 TRUE 表示已处理了鼠标点击,不需要系统处理。返回 FALSE 允许系统默认处理点击。
End Function

运行效果:

完整例子:

https://github.com/rainheart311/VisualFreeBASIC/tree/master/StatusBar

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值