收录日期:2019/05/20 13:13:45 时间:2016/05/31 07:15:24 标签:API
前段时间看了这里关于把进度条嵌入状态条的问题后,写了个函数(见下),效果不错。
但是用到 MDIForm 上就不行,有请各位指点!

'-------------------------------------------------------------------------------------
'frmWin:传入窗体;objSBar:传入状态条;objPBar:传入进度条;bPBar:嵌入/退出。
'调用时需传入:窗口、状态条、进度条(控件)名
Public Sub ProgressInStatusBar(ByRef frmWin As Form, ByRef objSBar As StatusBar, ByRef objPBar As ProgressBar, ByVal bPBar As Boolean)
  Dim req As Long, Kx As Long, Ky As Long
  Dim tRC As RECT
  
  If bPBar Then
     '从状态条中得到第二面板的尺寸
     req = SendMessage(objSBar.hwnd, SB_GETRECT, 1, tRC)
     
     '转换坐标尺寸
     Kx = Screen.TwipsPerPixelX
     Ky = Screen.TwipsPerPixelY
     With tRC
       .Top = (.Top * Ky)
       .Left = (.Left * Kx)
       .Right = (.Right * Kx) - .Left
       .Bottom = (.Bottom * Ky) - .Top
     End With
     
     '重新指定进度条的父窗口
     req = SetParent(objPBar.hwnd, objSBar.hwnd)
     
     '调整位置与姿态
     objPBar.Move tRC.Left, tRC.Top, tRC.Right, tRC.Bottom
     objPBar.Visible = True
     objPBar.Value = 30              '初始化
  Else
     '指定窗体为其父窗口
     req = SetParent(objPBar.hwnd, frmWin.hwnd)
     objPBar.Visible = False
  End If
End Sub
这是申明:

Public Type RECT
       Left As Long
       Top As Long
       Right As Long
       Bottom As Long
End Type

Public Const WM_USER As Long = &H400
Public Const SB_GETRECT As Long = (WM_USER + 10)

Public Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As RECT) As Long
UP
我也没有做过,关注一下
ProgressBar1.align 决定的。

先画一个picturebox 在放 ProgressBar1和状态条 测试可以。
谢谢!你还是说了。可惜没有正面的解决办法:没法让:ProgressBar1.align=0 !!!!!
picturebox .align=0

ntldr is missing 马上给分,奇怪问题,如何去掉html文件的标题? js 的一些问题,请高手帮忙~! 请前辈进来解惑~ 求助:C#.NET的问题!无法调试:绑定句柄无效! \\x20表示什么? unix下怎么玩kof 下载微软视频教程的问题 shell函数同步方式重复执行批处理文件内存不断增大问题 发送封包的问题 vb怎样获得IE浏览器中文本框中的值 哪位大哥大姐能提供一个设置了禁止打印权限的PDF文件,我做个测试用……谢了 关于静态字段的比较 如何打印元素下标? [高分]又碰到一个相当辣手的javascript问题? 有点小问题 寻一份兼职(asp.net) 继续攒分 继续攒分 继续攒分 继续攒分 继续攒分 继续攒分 继续攒分 这个SQL怎么写啊,2表关联 各位ruby高手,帮忙将一段C程序翻译成ruby程序,不会耽误你们很多时间的,很多都是注释。。。 iis 里面没有性能选项卡 sql2000打不了sp4补丁 加班加了5天了,明天还要加,后天还要上班,烦!散分! 感觉作为桌面操作系统来使用linux,几乎没有必要学习各种命令。