利用vb控制窗口显示风格_visualbasic教程

2008-02-23 05:44:55来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

软件界面生动和否很大程度上决定于您对窗口的设计和控制。事实上,Windows程式员能够对系统中的任何窗口进行操纵,他意味着,Windows程式员能够直接操纵任何正在运行的应用窗口;能够发现一个特定的应用是否在运行,假如该应用没有运行还能够启动他;能够重新排列屏幕上的任何窗口;还能够使其他应用的窗口最大化或最小化。下面我们探讨一种十分有意义的应用。
我们很希望在程式激活其他窗口时仍使得封面窗口处于前台,也就是说该窗口具备“总在最前面”(“AlwaysOnTop”)这一特性。其实Microsoft系列软件都是这样做的,当您运行Word、Excel或PowerPoint时,您会发现他们的封面窗口不随系统激活其他窗口而消
失。
VisualBasicForWindows3.0(以下简称VB)作为一种可视化编程软件,以其优秀的图像化界面设计风格而著称。利用他可使软件研发周期大为缩短,然而VB对WindowsDLL(动态链接库)调用的强大功能却易受不少程式员所忽略。事实上,灵活应用WindowsDLL的API(应用程式接口)才能使您研发的系统更加充满活力。正是由于VB支持DLL使得我们能够随心所欲地控制窗口显示风格,从而我们能够让系统封面总处于前台,下面说明用到的API函数。
.SetWindowPOS
VB定义:DeclareSubSetWindowPosLib“User”(BybalhWndasInteger,
hWndInserAfterasInteger,ByValXasInteger,ByValYasInteger,ByVal
cxasInteger,ByValcyasInteger,ByValwFlagsasInteger)

说明:能改变窗口的位置和大小,并能修改窗口在内部窗口列表中所处的位置,
以控制显示次序。
参数类型/说明
hWndInteger-需定位的窗口
hWndInserfterInteger-窗口句柄,在窗口列表里,窗口hWnd将放在该窗口句柄的后面,他能够取以下值:
HWND_BOTTOM:把窗口放在窗口列表的底部;
HWND-TOP:把窗口放在Z序的顶部。Z序是窗口按层次级别显示的顺序;
HWND_TOP(MOST):把窗口放在列表的顶部,位于任何最顶窗口之后。
XInteger—窗口新的x坐标,假如hWnd是个子窗口,X给出的是父窗口的客户坐标。
YInteger—窗口新的Y坐标,假如hWnd是个子窗口,Y给出的是父窗口的客户坐标。
cxInteger—指定新窗口宽度。
cyInteger—指定新窗口高度。
wFlagsInteger—包含下列标志之一的整数:
SWP_DRAWFRAME:围绕窗口画一个边框;
SWP_HIDEWINDOW:隐藏该窗口;
SWP_NOACTIVATE:不激活该窗口;
SWP_NOMOVE:保持当前位置(X和Y被忽略);
SWP_NOREDRAW:窗口不自动重画;
SWP_NOSIZE:保持当前大小(cx和cy被忽略);
SWP_NOZORDER:保持窗口列表中的当前位置(hWndInsertAfter被忽略);
SWP_SHOWWINDOW:显示该窗口。
注释:当一个窗口成为最顶窗口时,他任何的从属窗口也成为最顶窗口;当他成为非最顶窗口时,他全部的从属窗口和拥有窗口也成为非最顶窗口,Z序表示窗口沿着从屏幕里向外延伸的假想Z轴,从顶到底的排列次序。
VB实现窗口拥有“AlwaysOnTop”特性:
首先,定义全局常量及函数。
GlobalConstHWND_TOPMOST=-1
GlobalConstSWP_NOACTIVATE=&H10
GlobalConstSWP_SHOWWINDOW=&H40
DeclareSubSetWindowPosLib“User”(ByBalhWndasInteger,hWndInserAfterasInteger,ByValXasInteger,ByValYasInteger,ByValcxasInteger,ByValcyasInteger,ByVALwFlagsasInteger)主程式如下编写:
SubMain0
Screen.MousePointer=11使鼠标变为漏斗状
LoadSystemCover装载系统封面窗体
SetWindowPosSystemCover.hWnd,HWND_TOPMOST,0,0,0,0,SWP_NOACTIVATEOrSWP_SHOWWINDOW使得封面总处于最前面
LoadInitWindow1装载初始化窗体1
LoadInitWindow2装载初始化窗体2



UnloadSystemCover关闭系统封面窗体
Screen.MousePointer=0使鼠标变为缺省形状
EndSub->


标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: 关于c#的问答_c#教程

下一篇: 用ole自动化outlook_visualbasic教程