Sub ShowForm( MyForm As Object, Optional ByVal Modal As Integer = 0, Optional ByVal isHasFooter As Boolean = False, Optional ByVal bNotCaptionText As Boolean = False, Optional ByVal pTopBar As long = 0,
Optional ByVal bShortCaption As Boolean = False,
Optional bNotRoundRect As Boolean = False
)
这个过程用于显示窗口,我们不使用VB Form自带的Show函数来显示窗口,因为我们需要所有的窗口样式维持一致。
Form 要显示的VB窗口对象,必填
Modal 除了VB 的0 (非模态窗口) 和1(模态窗口) 外,我们新增加一个值 -1 :Standalone表示不要把这个窗口作为主界面窗口的子窗口。
如果 Modal=0 , 你的窗口会“套”进程序的主窗口中作为子窗口(看界面组件的实现是否用MDI模式)
isHasFooter 是否画出底部边框区域
bNotCaptionText 是否不要输出窗口标题,如果为True 则不会输出Icon和标题文字,这个时候的非客户区大小将为零,窗口100%变成客户区
pTopBar 这个参数是为了解决SUI 作为顶部工具条的时候,刚好SUI跨在窗口标题栏时,标题栏上部分的SUI对鼠标事件不响应的问题。
你只要传入这个SUI的指针即可修复这个Bug, 使用 ObjPtr( SUI控件 ) 即可取得指针
bShortCaption 这个参数是用来做短一点的标题栏的,适合一些信息提示框
bNotRoundRect 用来修复某些窗口因为SmartUI的影响而导致窗口的左上角和右上角的圆角丢失的问题
返回值:无
特殊地,我们可以通过窗口的LinkTopic属性来指定Icon,默认是用窗口自己的图标,如果指定了如 myico 则使用 myico.ico 这个图标文件
图标 目录位于: wwwroot\skins\$default\images\32*32\
Function ShowForm(MyForm as Form, Optional Modal as Integer =0) as Form 'SkinForm
这个过程用于显示窗口,我们不使用VB Form只带的Show来显示窗口,因为我们需要所有的窗口样式维持一致。
这个过程会自动把你的窗口“套”进我们的窗口容器里面,因此我们要求你的窗口不要边框和标题栏。
Form 要显示的VB窗口对象
Modal 除了VB 的0和1 外,我们新增加一个值 -1 :Standalone表示不要把这个窗口作为主界面窗口的子窗口。
如果 Modal=0 , 你的窗口“套”进窗口容器后还会“套”进程序的主窗口中(看界面组件的实现是否用MDI模式)
返回值:VB窗口对象,注意,这个窗口已经是你要显示的窗口的父窗口(容器窗口),虽然它也是一个VB窗口,但是已经不是你作为参数传进来那一个了。
这个窗口可以让你来它进行控制,例如:
Set Form2=MyApp.ShowForm(Form1) '要调整窗口的宽度: Form1.Width=2000 '这样是无效的 Form2.Width=2000 '这样才对
关闭窗口UnloadForm
Public Sub UnloadForm(MyForm As Object)
相当于用api:PostMessage hwnd, WM_CLOSE, 0&, 0& 来关闭窗口