收录日期:2019/03/20 19:59:05 时间: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

VB 十六进制浮点型数据转换函数 真的很奇怪 望各位高人、老鸟、前辈们指教,谢谢!!! EXCEL只按其中一列字母顺序排列 注册论坛都马上5年了。竟然还是个负分 怎么在session间共享?不用DB,及磁盘存储等额外功能 有关C#的问题,求解决 VS2010安装不了 看看各位谁遇到过这种蛋疼的问题啊! linux网络编程关于TCP服务器和客户端的,求解 【已答复】关于CSDN下载频道的问题~~我的积分一直都是负分·怎么回事? 内核移植时卡在了fsl-ehci上,硬件是飞斯卡尔的mpc8313,跪求大家帮助~ 请教高手,装插件遇到这个错误怎么解决? 求。用C/C++写一个提高mysql数据库效率的数据缓存模块 怎么把dictionary类型的数据转换成int型 关于主机屋 江湖救急!!!关于半角字符的问题。 专家分 数据库链接 求Altova XMLSpy 2012注册码 找高手问一下这个东西能实现什么功能? 困扰两天了,希望能得到帮助,谢谢:There is no Action mapped for namespace VS2010安装不了 看看各位谁遇到过这种蛋疼的问题啊! PHP分页解析URL后,取出URL的查询字串出错,怎么解决啊 书上的一段程序不懂???? 把前缀变后缀。用栈实现 在MFC创建的ActiveX控件中,全局函数如何获取主线程的句柄,即我想在全局函数中往主线程中抛消息 下班回家,一动也不想动 QQ强制视频是真是假啊,恐怖啊 这个积分 我都不知道 怎么弄了。。。我都块哭了。。。 如何 在Form2中调用Form1的函数?(函数的作用是改变Form1的label1.text的值) c# 数据库相关 新人求助 求各位前辈给点指点