数学建模社区-数学中国

标题: 请问,怎样让程序一到时间,就弹到最前呢? [打印本页]

作者: 小菜菜同学    时间: 2005-4-30 12:15
标题: 请问,怎样让程序一到时间,就弹到最前呢?
<>就是让程序运行后,干点别的,程序运行完或一到时间,就不管你做什么,就一下子弹到最先,起一提示作用。就象有的下棋网络游戏,对方一下棋,棋盘就自动跳出来。</P>: N6 g, x" d* o( D
<>望大侠解答一下,</P>[em02][em02]
作者: ilikenba    时间: 2005-4-30 13:18
<>用一个时钟控件,在OnTimer事件中加上Form2-&gt;Show();</P><>使窗体在最前面主要是重载Form的虚拟函数CreateParams,改变TCreateParams的成员WndParent就可以了。  
, f: u& Z2 j. \3 c9 S' y; l
. v7 B' L' C& j$ r6 V, r/ @% w; dclass  TForm2  :  public  TForm  ' W9 ^/ S* [3 Z
{  
7 p1 ~3 F% Q+ }* |__published:            //  IDE-managed  Components  2 ?1 t$ Y! z$ C! J
private:            //  User  declarations  
( {* D1 x) x6 n! J8 Yprotected:  
6 \4 l. Z' b. V$ H7 l       virtual  void  __fastcall  CreateParams(TCreateParams  &amp;  Param);  2 g, t; v6 e: L7 j
public:            //  User  declarations  6 m0 H# z. B' O5 c( L5 {& T1 n
       __fastcall  TForm2(TComponent*  Owner);  
0 p' T& x/ A- e- B4 M! O: T2 C1 L};  + m3 L* c/ }; }$ `3 `3 L; H$ O' _; P

8 K' B- W8 n, x8 h7 L) W6 @7 ?void  __fastcall  TForm2::CreateParams(TCreateParams  &amp;  Param)  
. D! i' Y4 D/ C) p+ [  b{    H: c2 Y4 [0 Y5 k' s/ M
       //调用基类的函数  
* q" M0 M$ t$ {+ c3 d       TForm::CreateParams(Param);  
: ?  ~7 }2 ?2 `6 i5 H+ q9 h, V" c
# x8 F$ m6 p0 A8 y6 b' S/ ~       Param.ExStyle    &brvbar;=  WS_EX_TOPMOST;    / s4 O' ^8 b8 o  ?+ b1 s

9 B0 C3 k% @6 D* U1 D; \. c       //这儿最关键的是只要Param.WndParent不是Application-&gt;Handle就可以了,  
! U8 |/ A, _$ c( H$ P8 r9 C, B  I       //不一定非要用GetDesktopWindow(),用其它的窗口也可以。  
) [2 f/ h6 W9 w       Param.WndParent  =  GetDesktopWindow();    " C7 m" y5 n7 E' Y' \+ k( P
}; y: f& c8 C' w$ {5 t6 G, n
</P>




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5