利用VB控制窗口显示风格
广州 郭少越
软件界面生动与否很大程度上决定于你对窗口的设计和控制。事实上,Windows程序员可以对系统中的任何窗口进行操纵,它意味着,Windows程序员可以直接操纵任何正在运行的应用窗口;可以发现一个特定的应用是否在运行,如果该应用没有运行还可以启动它;可以重新排列屏幕上的所有窗口;还可以使其他应用的窗口最大化或最小化。下面我们探讨一种十分有意义的应用。
我们很希望在程序激活其它窗口时仍使得封面窗口处于前台,也就是说该窗口具有“ 总在最前面”(“Always On Top”)这一特性。其实Microsoft系列软件都是这样做的,当你运行Word、Excel或PowerPoint时,你会发现它们的封面窗口不随系统激活其它窗口而消失。
Visual Basic For Windows(以下简称VB)作为一种可视化编程软件,以其优秀的图形化界面设计风格而著称。利用它可使软件开发周期大为缩短,然而VB对Windows DLL(动态链接库)调用的强大功能却易受不少程序员所忽略。事实上,灵活应用Windows DLL的API(应用程序接口)才能使你开发的系统更加充满活力。正是由于VB支持DLL使得我们可以随心所欲地控制窗口显示风格,从而我们可以让系统封面总处于前台,下面说明用到的API函数。
.SetWindowPOS
VB定义:
Declare Sub SetWindowPosLib“User” (Bybal hWnd as Integer ,hWndInsertAfter as Integer,ByVal X as Integer,ByVal Y as Integer,ByVal cx as Integer ,ByVal cy as Integer,ByVal wFlags as Integer)
说明:能改变窗口的位置和大小,并能修改窗口在内部窗口列表中所处的位置,
以控制显示次序。
参数 类型/说明
hWnd Integer-需定位的窗口
hWndInsertAfter Integer-窗口句柄,在窗口列表里,
窗口hWnd将放在该窗口句柄的后面,它可以取以下值:
hWnd_BOTTOM:把窗口放在窗口列表的底部;
hWnd-TOP:把窗口放在Z序的顶部。Z序是窗口按层次级别显示的顺序;
hWnd_TOP(MOST):把窗口放在列表的顶部,位于所有最顶窗口之后。
X Integer―窗口新的X坐标,如果hWnd是一个子窗口,X给出的是父窗口的客户坐标。
Y Integer―窗口新的Y坐标,如果hWnd是一个子窗口,Y给出的是父窗口的客户坐标。
cx Integer―指定新窗口宽度。
cy Integer―指定新窗口高度。
wFlags Integer―包含下列标志之一的整数:
SWP_DRAWFRAME:围绕窗口画一个边框;
SWP_HIDEWINDOW:隐藏该窗口;
SWP_NOACTIVATE:不激活该窗口;
SWP_NOMOVE:保持当前位置(X和Y被忽略);
SWP_NOREDRAW:窗口不自动重画;
SWP_NOSIZE:保持当前大小(cx和cy被忽略);
SWP_NOZORDER:保持窗口列表中的当前位置(hWndInsertAfter被忽略);
SWP_SHOWWINDOW:显示该窗口。
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余1页未读,立即下载