小 小羽 Unregistered / Unconfirmed GUEST, unregistred user! 2002-05-15 #1 如何在程序启动时独占屏幕,不能切换?像QQ的消息一样,始终在最前,用ALT+TAB也不能切换呢?
B book523 Unregistered / Unconfirmed GUEST, unregistred user! 2002-05-15 #2 如何使Form位于所有窗体最前 在设计程序界面时,有时要求某一窗体不能被任何其它窗体遮盖,即使它失去焦 点。对于应用程序主窗体来说,可以通过在物体属性栏(Object Inspector) 中设置窗体的FormStyle属性为fsStayOnTop来实现;但是对于多窗体应用程序(MDI) 中主窗体产生的子窗体而言,这一方法的效果是相对有限的,因为此法只能 使该子窗体位于本应用程序其它窗体的最前端,当Windows 95桌面上别的应用程序窗 体获得焦点后仍可以将其遮盖。如果您需要应用程序子窗体拥有绝对的位于 所有窗体最前的能力时,可以参照下法进行(假定由主窗体事件产生的子窗体为 Form2,对应的程序组名为Unit2): 1.在Unit2中窗体类声明public段下定义一个处理过程: procedure AppBringtoTop(Sender:TObject); 2.在Form2的oncreate事件中加入*句如下: procedure Tform2.FormCreate(Sender:TObject); begin Application.OnDeactivate :=AppBringtoTop; //* end; 3.编写AppBringtoTop过程程序如下: procedure TForm2.AppBringtoTop(Seader:TObject); begin SetactiveWindow(Handle); //API函数,将本窗体提至最前 end; ●说明:Application是Delphi对用户创建的应用程序的封装,为TApplication 类,如同TForm等一样,TApplication也有其自己的属性与事件定义,其中 Application.OnDeactivate事件在用户开启其他应用程序而将会使本应用程序为 Deactivate时产生,正确地对该事件编程即可实现本窗体(Form2)始终位于最前; 另外由于TApplication是不可见控件,同时它的属性与事件均没有列入物体属性栏 中,因而需要在程序段中编写代码来进行描述。编写TApplication的事件过程 时要按下述原则进行:A?在执行段implementation中编写好事件处理过程;B?在 interface段中声明该事件处理过程;C?在该窗体的FormCreate事件中定义所 需的Application事件响应为B中声明的过程名。
如何使Form位于所有窗体最前 在设计程序界面时,有时要求某一窗体不能被任何其它窗体遮盖,即使它失去焦 点。对于应用程序主窗体来说,可以通过在物体属性栏(Object Inspector) 中设置窗体的FormStyle属性为fsStayOnTop来实现;但是对于多窗体应用程序(MDI) 中主窗体产生的子窗体而言,这一方法的效果是相对有限的,因为此法只能 使该子窗体位于本应用程序其它窗体的最前端,当Windows 95桌面上别的应用程序窗 体获得焦点后仍可以将其遮盖。如果您需要应用程序子窗体拥有绝对的位于 所有窗体最前的能力时,可以参照下法进行(假定由主窗体事件产生的子窗体为 Form2,对应的程序组名为Unit2): 1.在Unit2中窗体类声明public段下定义一个处理过程: procedure AppBringtoTop(Sender:TObject); 2.在Form2的oncreate事件中加入*句如下: procedure Tform2.FormCreate(Sender:TObject); begin Application.OnDeactivate :=AppBringtoTop; //* end; 3.编写AppBringtoTop过程程序如下: procedure TForm2.AppBringtoTop(Seader:TObject); begin SetactiveWindow(Handle); //API函数,将本窗体提至最前 end; ●说明:Application是Delphi对用户创建的应用程序的封装,为TApplication 类,如同TForm等一样,TApplication也有其自己的属性与事件定义,其中 Application.OnDeactivate事件在用户开启其他应用程序而将会使本应用程序为 Deactivate时产生,正确地对该事件编程即可实现本窗体(Form2)始终位于最前; 另外由于TApplication是不可见控件,同时它的属性与事件均没有列入物体属性栏 中,因而需要在程序段中编写代码来进行描述。编写TApplication的事件过程 时要按下述原则进行:A?在执行段implementation中编写好事件处理过程;B?在 interface段中声明该事件处理过程;C?在该窗体的FormCreate事件中定义所 需的Application事件响应为B中声明的过程名。
Y yanh_98 Unregistered / Unconfirmed GUEST, unregistred user! 2002-05-16 #4 这是两个问题:第一个问题直接设置form的属性就行了,第二个问题可以通过onkeydowm 事件来处理判断按下的键,键值等于alt+tab时什么都不做,或什么其它的就看你自己了。
小 小羽 Unregistered / Unconfirmed GUEST, unregistred user! 2002-05-16 #5 对不起,再问一下 ALT+TAB 和 WINDOWS 和 CTRL+ALT+ESC 和 CTRL+ALT+DEL 和 CTRL+SHIFT+ESC 键怎么表示呢 ?
天 天堂鸟6420 Unregistered / Unconfirmed GUEST, unregistred user! 2002-05-29 #9 systemparametersinfo(97,1,nil,0);//屏蔽热键 systemparametersinfo(97,0,nil,0);//取消屏蔽 你可以试一下
Q qdyoung Unregistered / Unconfirmed GUEST, unregistred user! 2002-05-29 #10 楼上的调用在2000下是不能用的 ------------------ http://www.8421.org