制作到现在碰到的最大的难点在于SSTAB这个东西上,我的多窗口的做法是在每一个SSTAB.TAB上生成一个WEBBROWSER,当然,这个webbrowser先定义成控件组.这样就形成了一个sstab.tab(i)对应一个webbrowser(i),做窗口操作的时候比较好处理.
可以在上文看到,还有一个display的变量,它是来做什么的呢?新建窗口的时候怎么处理?关闭窗口的时候又是怎么处理呢?这些当初困扰了我好久,逻辑有的,写的时候却经常犯下小失误.
先来谈谈新建窗口.
- '判断此次新建窗口是否要闪烁按钮
- Ifnoflash<>1Then
- Picture1.Picture=Picture15.Picture
- EndIf
- '总页面变量加1
- totalpage=totalpage+1
- '设置当前页的变量为总页面数-1,新页面总是在尾部添加标签
- activepage=totalpage-1
- '将页面总数赋予sstab的tab数
- SSTab1.Tabs=totalpage
- '当前显示的页面加1
- display=display+1
- '调整标签宽度
- Ifdisplay>6Then
- SSTab1.TabsPerRow=display
- Else
- SSTab1.TabsPerRow=6
- EndIf
- '判断尾部是否有隐藏的标签,有的话调整当前页位置向后移,暂定总页面数100页,
- '虽然这个页面数包括被关闭的标签数量,但是在正常情况下应该够了.
- Fori=activepageTo100
- IfSSTab1.TabVisible(i)=TrueThen
- activepage=i
- SSTab1.Tab=activepage
- ExitFor
- EndIf
- Next
- 'LoadWebBrowser1(WebBrowser1.ubound+1)
- '动态建立新的webbrowser控件
- LoadWebBrowser1(activepage)
- '添加sstab超过perRow时top的自动位移
- Fori=0Tototalpage-1
- IfDoesControlExist(WebBrowser1(i))Then
- WebBrowser1(i).Top=340
- WebBrowser1(i).Width=Me.Width-120
- WebBrowser1(i).Height=Me.Height-1800
- EndIf
- Next
- WebBrowser1(activepage).Visible=True
- WebBrowser1(activepage).Left=0
- '新建窗口以空白页显示
- WebBrowser1(activepage).Navigate"about:blank"