CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  基础类

小问题请教!

楼主haikongyingxiong(苇子)2004-12-01 16:59:33 在 C++ Builder / 基础类 提问

小弟有一问题向大家请教:怎么样实现界面的淡入淡出?谢谢! 问题点数:0、回复次数:1Top

1 楼3996906(我只是建议,不提供最后的解决方法)回复于 2004-12-01 18:27:47 得分 0

都贴了吧,以前收的  
  __fastcall   TForm1::TForm1(TComponent*   Owner)  
          :   TForm(Owner)  
  {  
  this->AlphaBlend   =   true;  
  this->AlphaBlendValue   =   255;  
  Timer1->Internal   =   200;  
  Timer1->Enabled   =   true;  
  }  
  //---------------------------------------------------------------------------  
  void   __fastcall   TForm1::Timer1OnTimer(TObject   *Sender)  
  {  
  AlphaBlendValue--;  
  if(AlphaBlendValue==0)Timer1->Enabled   =   false;  
  }  
  //---------------------------------------------------------------------------  
  111111111111111111111111111111111111111111111111111111111111  
  __fastcall   TForm1::TForm1(TComponent*   Owner)  
  :   TForm(Owner)  
  {  
  AnimateWindow(Form1->Handle,   2000,   AW_ACTIVATE   |   AW_BLEND   );  
  }  
  //---------------------------------------------------------------------------  
   
  void   __fastcall   TForm1::FormClose(TObject   *Sender,   TCloseAction   &Action)  
  {  
  AnimateWindow(Form1->Handle,   2000,   AW_HIDE   |   AW_BLEND   );  
  }  
  //---------------------------------------------------------------------------  
  22222222222222222222222222222222222222222222222222222222222222222  
  #define   NUM   50    
  void   FormAnimate(HWND   hWnd,   BOOL   Close)    
  {    
          int     W,   H;    
          HRGN   hRgn;    
          RECT   Rect;    
          UINT   uDelay;    
   
          GetWindowRect(hWnd,   &Rect);    
          W   =   Rect.right   -   Rect.left;    
          H   =   Rect.bottom   -   Rect.top;    
          for(int   n=0;   n<=NUM;   n++)   {    
                  int   dx   =   (W/2)   *   n   /   NUM;    
                  int   dy   =   (H/2)   *   n   /   NUM;    
                  if   (!Close)    
                          hRgn   =   CreateRectRgn(    
                                  W/2-dx,   H/2-dy,   W    
                                  /2+dx,   H/2+dy);    
                  else    
                          hRgn   =   CreateRectRgn(    
                                  dx,   dy,   W-dx,   H-    
                                  dy);    
                  SetWindowRgn(hWnd,   hRgn,    
                          TRUE);    
                  UpdateWindow(hWnd);    
                  DeleteObject(hRgn);    
                  Sleep(500/NUM);    
          }    
  }    
   
  void   __fastcall   TForm1::FormActivate(TObject   *Sender)    
  {    
          if   (Tag   ==   0)   {    
                  Tag   =   1;       FormAnimate(Handle,   false);    
          }    
  }    
  //---------------------------------------------------------------------------    
  void   __fastcall   TForm1::FormClose(TObject   *Sender,   TCloseAction   &Action)    
  {    
          Tag   =   0;       FormAnimate(Handle,   true);    
  }  
  Top

相关问题

  • 小小小小小问题!
  • 一个小小小小小小问题
  • 小小,小问题
  • 小小小小问题
  • 小小问题!
  • 小小问题?
  • 小小问题。
  • 小小问题!!!!
  • 小小API
  • 小小问题:)

关键词

  • alphablendvalue
  • tform
  • aw
  • fastcall
  • owner
  • timer

得分解答快速导航

  • 帖主:haikongyingxiong

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo