分享
 
 
 

利用VB控制窗口显示风格

王朝vb·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

利用VB控制窗口显示风格

http://www.tongyi.net 作者:天涯风铃 点击:504

软件界面生动与否很大程度上决定于你对窗口的设计和控制。事实上,Windows程序员可以对系统中的任何窗口进行操纵,它意味着,Windows程序员可以直接操纵任何正在运行的应用窗口;可以发现一个特定的应用是否在运行,如果该应用没有运行还可以启动它;可以重新排列屏幕上的所有窗口;还可以使其他应用的窗口最大化或最小化。下面我们探讨一种十分有意义的应用。

我们很希望在程序激活其它窗口时仍使得封面窗口处于前台,也就是说该窗口具有“总在最前面”(“Always On Top”)这一特性。其实Microsoft系列软件都是这样做的,当你运行Word、Excel或PowerPoint时,你会发现它们的封面窗口不随系统激活其它窗口而消失。

Visual Basic For Windows(以下简称VB)作为一种可视化编程软件,以其优秀的图形化界面设计风格而著称。利用它可使软件开发周期大为缩短,然而VB对Windows DLL(动态链接库)调用的强大功能却易受不少程序员所忽略。事实上,灵活应用Windows DLL的API(应用程序接口)才能使你开发的系统更加充满活力。正是由于VB支持DLL使得我们可以随心所欲地控制窗口显示风格,从而我们可以让系统封面总处于前台,下面说明用到的API函数。

.SetWindowPOSVB定义:

Declare Sub SetWindowPosLib“User”(Bybal hWnd as Integer,hWndInsertAfter as Integer,ByValXas Integer,ByValYas 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:显示该窗口。

注释:当一个窗口成为最顶窗口时,它所有的从属窗口也成为最顶窗口;当它成为非最顶窗口时,它全部的从属窗口和拥有窗口也成为非最顶窗口,Z序表示窗口沿着从屏幕里向外延伸的假想Z轴,从顶到底的排列次序。

VB实现窗口拥有“Always On Top”特性:

首先,定义全局常量及函数。

Global Const hWnd_TOPMOST=-1

Global Const SWP_NOACTIVATE=&H10

Global Const SWP_SHOWWINDOW=&H40

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)

主程序如下编写:

Sub Main 0

Screen.MousePointer=11'使鼠标变为漏斗状

Load SystemCover'装载系统封面窗体

SetWindowPos SystemCover.hWnd,hWnd_TOPMOST,0,0,0,0,SWP_NOACTIVATE Or SWP_SHOWWINDOW'使得封面总处于最前面

Load InitWindow1'装载初始化窗体1

Load InitWindow2'装载初始化窗体2

Unload SystemCover'关闭系统封面窗体

Screen.MousePointer=0

'使鼠标变为缺省形状

End Sub

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有