S shangshang Unregistered / Unconfirmed GUEST, unregistred user! 2002-06-25 #1 一些应用程序的模式窗体显示时,如果鼠标点了应用程序的其他地方,则模式窗体的标题栏会闪烁以提醒用户。我想问的是,在什么时候执行我闪烁窗体的代码,也就是怎么判断。呵呵.这个问题希望有人能顺便指点一下。 (100分)<br />如题, 另,如嫌分少, 可加至300.
一些应用程序的模式窗体显示时,如果鼠标点了应用程序的其他地方,则模式窗体的标题栏会闪烁以提醒用户。我想问的是,在什么时候执行我闪烁窗体的代码,也就是怎么判断。呵呵.这个问题希望有人能顺便指点一下。 (100分)<br />如题, 另,如嫌分少, 可加至300.
月 月满西楼 Unregistered / Unconfirmed GUEST, unregistred user! 2002-06-25 #4 我理解这位老兄的意思大概是这样: 比如打开Notepad,然后按Ctrl+O启动“打开文件”对话框,这时候再去点Notepad的主窗口, 那么对话框就会闪烁。 我试了几个软件,Notepad和Wordpad和Visual C++都会有这样的现象,但是Word 2002和 Delphi就没有。确实挺有意思的,不知道为什么会有不一致的问题。
我理解这位老兄的意思大概是这样: 比如打开Notepad,然后按Ctrl+O启动“打开文件”对话框,这时候再去点Notepad的主窗口, 那么对话框就会闪烁。 我试了几个软件,Notepad和Wordpad和Visual C++都会有这样的现象,但是Word 2002和 Delphi就没有。确实挺有意思的,不知道为什么会有不一致的问题。
S shangshang Unregistered / Unconfirmed GUEST, unregistred user! 2002-06-25 #5 不好意思,第一次贴的时候,标题没有贴完全, 已经修改过了. 希望各位路过的大侠指点一二.
S shangshang Unregistered / Unconfirmed GUEST, unregistred user! 2002-06-25 #8 我是说什么时候,或是在哪里执行flashwindow。
张 张无忌 Unregistered / Unconfirmed GUEST, unregistred user! 2002-06-25 #9 这是系统的功能把,Form2.showmodal;以后,Form1就不能响应消息了,除非你用一个线程 :)
S shangshang Unregistered / Unconfirmed GUEST, unregistred user! 2002-06-26 #10 我想这不是WINDOWS的功能, 我确定以前见过一篇文章,讲的是如何实现这种闪烁标题栏以 提醒用户的效果. 可惜就记得了一个flashwindow 和 Timer, 至于什么时候执行这些代码 就给忘掉了. ^_^
我想这不是WINDOWS的功能, 我确定以前见过一篇文章,讲的是如何实现这种闪烁标题栏以 提醒用户的效果. 可惜就记得了一个flashwindow 和 Timer, 至于什么时候执行这些代码 就给忘掉了. ^_^
U ugvanxk Unregistered / Unconfirmed GUEST, unregistred user! 2002-06-26 #11 procedure tform1.button1click begin form2.show; form1.bringtofront; timer1.interval:=getcareblinktime; timer1.enabled:=not timer1.enabled; end; procedure tform1.timertimer begin flashwindow(form2.handle,true); end;
procedure tform1.button1click begin form2.show; form1.bringtofront; timer1.interval:=getcareblinktime; timer1.enabled:=not timer1.enabled; end; procedure tform1.timertimer begin flashwindow(form2.handle,true); end;
S shangshang Unregistered / Unconfirmed GUEST, unregistred user! 2002-06-27 #12 ugvanxk,我已经重申几遍了, 我要的是什么时候,用什么方法来判断出这种事件的发生. 然后执行你的这个闪烁窗体的代码. 这个代码我知道的. 不好意思.
S shangshang Unregistered / Unconfirmed GUEST, unregistred user! 2002-07-05 #15 对啊,路过的各位,想知道答案的帮忙up一下哦。
C createnew Unregistered / Unconfirmed GUEST, unregistred user! 2002-07-05 #16 我觉得是在主窗口被单击,可没有出现最上方,或又不是当前窗口的时候
S shangshang Unregistered / Unconfirmed GUEST, unregistred user! 2002-07-08 #18 当模式窗口出现时,主窗体不可能响应任何事件啊。
K Kingron Unregistered / Unconfirmed GUEST, unregistred user! 2002-07-08 #19 Win2000里面的程序自动有这个功能!下面是我的研究: 下面的是Kingron原创的哦,在Windows 2000 Advance Server + D5下通过 一个技术型的问题: 我们知道,使用Windows2000的时候,如果是Windows2000本身的对话框, 显示一个模态的窗口的时候,如果这个时候单击调用模态窗口的窗口, 那么这个模态窗口会闪动标题栏来提示用户!这是一个很好的功能, 不知道用Delphi怎么做?我写了好几个测试程序,但是都找不着门路。 也许用纯API创建可以,但是不用纯API有没有办法做到呢?要方法简单哦。 解决方法如下: 1:要么修改Forms.pas,设立一个全局变量,并且采用动态创建窗体的方法,这样可以随时改变Form的Owner窗体。 2:普通的方法: 假设有两个窗体: form1,form2,form2为Modal窗体,由form1来调用,那么修改form2的pas单元如下: TForm2=class(TForm) .... procedure CreateParams(var Para:TCreateParams);override; ... end; .... procedure TForm2.CreateParams(var Para:TCreateParams); begin inherited CreateParams(Para); Para.WndParent:=Form1.Handle; end; 这样,就会有那种闪动标题栏的效果了。
Win2000里面的程序自动有这个功能!下面是我的研究: 下面的是Kingron原创的哦,在Windows 2000 Advance Server + D5下通过 一个技术型的问题: 我们知道,使用Windows2000的时候,如果是Windows2000本身的对话框, 显示一个模态的窗口的时候,如果这个时候单击调用模态窗口的窗口, 那么这个模态窗口会闪动标题栏来提示用户!这是一个很好的功能, 不知道用Delphi怎么做?我写了好几个测试程序,但是都找不着门路。 也许用纯API创建可以,但是不用纯API有没有办法做到呢?要方法简单哦。 解决方法如下: 1:要么修改Forms.pas,设立一个全局变量,并且采用动态创建窗体的方法,这样可以随时改变Form的Owner窗体。 2:普通的方法: 假设有两个窗体: form1,form2,form2为Modal窗体,由form1来调用,那么修改form2的pas单元如下: TForm2=class(TForm) .... procedure CreateParams(var Para:TCreateParams);override; ... end; .... procedure TForm2.CreateParams(var Para:TCreateParams); begin inherited CreateParams(Para); Para.WndParent:=Form1.Handle; end; 这样,就会有那种闪动标题栏的效果了。
K Kingron Unregistered / Unconfirmed GUEST, unregistred user! 2002-07-08 #20 这个问题我以前研究了好久,发现用VC写程序,动态创建的话,都会有这个效果,而Office则 没有,因此,可以看出来,在Office的编写当中,不全部使用VC编写的,在界面方面,应该是 使用VB多一点儿。这是我的猜测。 另外,要修改Forms.pas编译的时候,比较麻烦,好像Borland公司不希望别人修改VCL源代码? 我有一个修改好的Forms.pas,但是现在丢失了! 以前我的代码是这样的: wndParent:=Form1。Handle; Form2:=TForm2。Create(Application); wndParent:=nil; Form2。ShowMadal; 。。。。 方式使用这种方式创建的话,都会有你说的这个效果。 我以前的一个程序就用过这个功能!在2000下很爽的!!!
这个问题我以前研究了好久,发现用VC写程序,动态创建的话,都会有这个效果,而Office则 没有,因此,可以看出来,在Office的编写当中,不全部使用VC编写的,在界面方面,应该是 使用VB多一点儿。这是我的猜测。 另外,要修改Forms.pas编译的时候,比较麻烦,好像Borland公司不希望别人修改VCL源代码? 我有一个修改好的Forms.pas,但是现在丢失了! 以前我的代码是这样的: wndParent:=Form1。Handle; Form2:=TForm2。Create(Application); wndParent:=nil; Form2。ShowMadal; 。。。。 方式使用这种方式创建的话,都会有你说的这个效果。 我以前的一个程序就用过这个功能!在2000下很爽的!!!