使窗口实现“淡入淡出”效果(非原创)

         使窗口逐渐浮现,退出时逐渐消失,这主要是通过设置增强窗口样式为图层窗口,然后设置窗口的alpha值来实现的。在c#中,对应的是Form.Opacity属性。这是老外的一篇帖子里面提到的,但我对代码做了一些改进,使代码更为直观易用。
         实现窗口的“淡出”,我们需要在创建窗口时指定窗口样式,这可以在窗口过程中创建或者初始化消息中处理,对于对话框程序,代码如下:

Code-WndProc
INT_PTR CALLBACK DlgProc(HWND hDlg,UINT Msg,WPARAM wParam,LPARAM lParam)
{
    switch(Msg)
    {
         case WM_INITDIALOG:
        {
            //添加菜单等            //将窗口设置为图层窗口样式
            SetWindowLong(hDlg,GWL_EXSTYLE,::GetWindowLong(hDlg, GWL_EXSTYLE) | WS_EX_LAYERED);        
            return true;
        }
        case WM_CLOSE:
        {
            //使窗口渐渐变得透明,然后关闭!!!!
            for(int i=100;i>0;i--)
                SetLayeredWindowAttributes(hDlg,0, 255*i/100, LWA_ALPHA);
            //发送WM_QUIT消息,使消息循环结束,程序退出!
            PostQuitMessage(0);
            return true;
        }
   }
  return false;
}

         实现窗口的“淡入”效果的代码如下,在WinMain函数中,我们使用如下代码:
        

Code-WinMain
int CALLBACK WinMain(HINSTANCE hInstance,HINSTANCE hPreInstance,LPSTR lpCmdLine,int ShowCmd)
{
        //注册窗口类
       
        MainForm=CreateDialog(hInstance,(LPCTSTR)IDD_MAINFORM,NULL,DlgProc);
        //显示前先将窗口设为透明度为0!    
        SetLayeredWindowAttributes(MainForm,0,0, LWA_ALPHA);
        //显示窗口
        ShowWindow(MainForm,SW_SHOW);
        //使窗口从透明逐渐浮现!
        for(int i=0;i<=100;i++)
             SetLayeredWindowAttributes(MainForm,0, 255*i/100, LWA_ALPHA);
        //消息循环
        return 0;    
}

 

 

          ===================================

                    补充 by hoodlum1980 2008年12月22日18:40:30

          ===================================

          另外,不使用图层窗口,可以使用 AnimateWindow 这个 API 函数来完成类似功能:

          例如:AnimateWindow(hDlg, 200, AW_HIDE | AW_BLEND); //使窗口渐隐。

时间: 2024-09-20 09:35:38

使窗口实现“淡入淡出”效果(非原创)的相关文章

GoldWave怎么制作音频淡入淡出效果

  GoldWave怎么制作音频淡入淡出效果 1.我们可以首先在百度软件中心下载安装需要的软件到电脑,然后运行软件. 2.打开软件以后,我们点击OPEN选项打开需要处理的音频,当然也可以点击文件菜单[file]打开需要处理的音频文件. 3.打开音频文件后,我们这里鼠标拖动左边和右边的滑块,设置好要淡入的音频区域,这里我们主要是设置要处理的范围. 4.然后我们选择效果菜单,然后点击声音中淡入,[effect-volume-fade in] 这时候出现的窗口中我们可以直接点击确定,当然自己也可以调整

js如何实现淡入淡出效果_javascript技巧

淡入淡出效果,在日常项目中经常用到,可惜原生JS没有类似的方法,而有时小的页面并不值得引入一个jQuery库,所以就自己写了一个,已封装,有用得着的朋友,可以直接使用.代码中另附有一个设置元素透明度的方法, 是按IE规则(0~100)设置, 若改成标准设置方法(0.00~1.00),,下面使用时请考虑浮点精确表达差值. 参数说明: fadeIn()与fadeOut()均有三个参数,第一个是事件, 必填:第二个是淡入淡出速度,正整数,大小自己权衡,可选参数:第三个, 是指定淡入淡出到的透明度值(类

jQuery入门(6) 淡入淡出效果

jQuery 提供了下面几种方法可以实现显示的淡入淡出效果: fadeIn() fadeOut() fadeToggle() fadeTo() fadeIn()方法 fadeIn() 实现淡入效果,其基本语法如下 : $(selector).fadeIn(speed,callback); 可选参数speed给出了淡入效果的时间,可以 使用 "slow","fast" 或是数值(微秒) 第二个可选参数为回调函数,在fadeIn()方法结束后调 用. $("b

PPT中制作音频淡入淡出效果教程

  PPT中制作音频淡入淡出效果教程.幻灯演示文稿PowerPoint是最常用的办公软件之一,有的小伙伴喜欢用一首歌的高潮部分来作为背景音乐,但是剪出来的音乐高潮部分还需要给它做一个淡入淡出效果,来看看具体操作步骤吧. 方法/步骤 首先在创建打开的PowerPoint 2013中插入准备好的音频文件. 操作步骤:插入 → 音频 → PC上的音频. 对于插入得到的音频图标(喇叭状),单击会出现浮动控制条,也可以通过鼠标将其拖动到合适的位置.这里为了演示需要放到左上角吧,效果如下图. 试着单击浮动控

原生js和jquery实现图片轮播淡入淡出效果

  原生js和jquery实现图片轮播淡入淡出效果          本文给大家分享的是使用原生的js和jQuery2种方法,分别实现图片轮播的淡入淡出效果的代码,非常实用,也方便小伙伴们对比分析,希望对大家学习js和jq能够有所帮助. 图片轮播有很多种方式,这里采用其中的 淡入淡出形式 js原生和jQuery都可以实现,jquery因为封装了很多用法,所以用起来就简单许多,转换成js使用,其实也就是用js原生模拟出这些用法. 但不管怎样,构造一个最基本的表现层是必须的 简单的图片轮播一般由几个

jquery淡入淡出效果介绍

 本篇文章主要是对jquery淡入淡出效果的简单实例进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 样式:      代码如下:  <style type="text/css">       #win {               width: 98%;              position: absolute;                   display: none;           float:left;           }      

基于jquery实现的文字淡入淡出效果_jquery

复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  <html xmlns="http://www.w3.org/1999/xhtml">  <head>  <meta http-equiv=

使用JQ来编写最基本的淡入淡出效果附演示动画_jquery

jQuery是一个JavaScript 库,也就是对JavaScript的扩展,用来满足各种日益增加的不同特效需求.其实质就是JavaScript 下面来编写一个最基本的JQ程序来说明JQ. 一.基本目标 网页中有如下三个按钮,一个只能隐藏文本,一个只能显示文本,一个同时能隐藏与显示文本,点击一下显示,再点击一下隐藏,无限循环. 二.制作过程 1.首先你要到JQ官网中下载一个JQ支持文件放入你的站点文件夹.这个支持文件是jQuery1.11,可以到jQuery官网中下载兼容旧浏览器IE6的jQu

jQuery实现首页图片淡入淡出效果的方法_jquery

本文实例讲述了jQuery实现首页图片淡入淡出效果的方法.分享给大家供大家参考.具体分析如下: 这里演示当当网的品牌店铺首页效果,演示地址为:http://static.dangdang.com/gm/topic/2270_181320.shtml 效果图如下所示: 需求: 1. 绿色区域要求在图片上方,半透明显示 2. 当鼠标移动到红色区域,切换相应的图片 3. 首页的三张大图轮转 HTML: <div id="carousel"> <div id="ca