c#桌面应用程序如何添加弹出式广告

c#写的软件很多,如何添加诸如像搜狗输入法软件与灵格斯翻译软件的屏幕右下角弹出式广告呢。
c#代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using System.Runtime.InteropServices;

namespace dataSource
{

/// <summary>
/// 枚举,描述消息窗口加载的形式
/// </summary>
public enum LoadMode
{
    /// <summary>
    /// 警告
    /// </summary>
    Warning,

    /// <summary>
    /// 错误
    /// </summary>
    Error,

    /// <summary>
    /// 提示
    /// </summary>
    Prompt
}

/// <summary>
/// 消息提示窗口

///

public partial class FormMessageBox : Form
{
    /// <summary>
    /// 构造方法
    /// </summary>
    public FormMessageBox()
    {
        InitializeComponent();
    }

    #region ***********************字 段***********************

    /// <summary>
    /// 窗体加载模式
    /// </summary>
    private static LoadMode FormMode = LoadMode.Prompt;

    /// <summary>
    /// 显示的消息正文
    /// </summary>
    private static string ShowMessage = null;

    /// <summary>
    /// 关闭窗口的定时器
    /// </summary>
    private Timer Timer_Close = new Timer();

///

/// 构造方法
    /// </summary>
    public FormMessageBox()
    {

[DllImportAttribute(“user32.dll”)]

private static extern bool AnimateWindow(IntPtr hwnd, int dwTime, int dwFlags);   // 该函数可以实现窗体的动画效果

    public const Int32 AW_HOR_POSITIVE = 0x00000001;   // 自左向右显示窗口。该标志可以在滚动动画和滑动动画中使用。当使用AW_CENTER标志时,该标志将被忽略
    public const Int32 AW_HOR_NEGATIVE = 0x00000002;   // 自右向左显示窗口。当使用了 AW_CENTER 标志时该标志被忽略

    public const Int32 AW_VER_POSITIVE = 0x00000004;   // 自顶向下显示窗口。该标志可以在滚动动画和滑动动画中使用。当使用AW_CENTER标志时,该标志将被忽略
    public const Int32 AW_VER_NEGATIVE = 0x00000008;   // 自下向上显示窗口。该标志可以在滚动动画和滑动动画中使用。当使用AW_CENTER标志时,该标志将被忽略

    public const Int32 AW_CENTER = 0x00000010;         // 若使用了AW_HIDE标志,则使窗口向内重叠;若未使用AW_HIDE标志,则使窗口向外扩展
    public const Int32 AW_HIDE = 0x00010000;           // 隐藏窗口,缺省则显示窗口
    public const Int32 AW_ACTIVATE = 0x00020000;       // 激活窗口。在使用了AW_HIDE标志后不要使用这个标志
    public const Int32 AW_SLIDE = 0x00040000;          // 使用滑动类型。缺省则为滚动动画类型。当使用AW_CENTER标志时,这个标志就被忽略
    public const Int32 AW_BLEND = 0x00080000;          // 使用淡入效果。只有当hWnd为顶层窗口的时候才可以使用此标志

    #endregion*************************************************

    #region ***********************方 法***********************

    /// <summary>
    /// 构造方法
    /// </summary>
    /// <param name="loadMode">加载模式</param>
    /// <param name="message">消息正文</param>

    public static void Show(LoadMode loadMode, string message)
        InitializeComponent();
    }

    #region ***********************字 段***********************

    /// <summary>
    /// 窗体加载模式
    /// </summary>
    private static LoadMode FormMode = LoadMode.Prompt;

    /// <summary>
    /// 显示的消息正文
    /// </summary>
    private static string ShowMessage = null;

    /// <summary>
    /// 关闭窗口的定时器
    /// </summary>
    private Timer Timer_Close = new Timer();

FormMode = loadMode;

ShowMessage = message;

        FormMessageBox box = new FormMessageBox();
        box.Show();
    }

    #endregion*************************************************

    #region ***********************事 件***********************

    /// <summary>
    /// 窗体加载事件
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void FormMessageBox_Load(object sender, EventArgs e)
    {
        this.lblTitle.Text = "提示";
        if (FormMode == LoadMode.Error)
        {
            this.lblTitle.Text = "错误";
            this.plShow.BackgroundImage = global::dataSource.Properties.Resources.error;    // 更换背景
        }
        else if (FormMode == LoadMode.Warning)
        {
            this.lblTitle.Text = "警告";
            this.plShow.BackgroundImage = global::dataSource.Properties.Resources.warning;  // 更换背景
        }
        else

{

this.plShow.BackgroundImage = global::dataSource.Properties.Resources.Prompt;   // 更换背景
        }

        this.lblMessage.Text = ShowMessage;

        int width = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width;
        int height = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height;
        int top = height - 35 - this.Height;
        int left = width - this.Width - 5;
        this.Top = top;
        this.Left = left;
        this.TopMost = true;

        AnimateWindow(this.Handle, 500, AW_SLIDE + AW_VER_NEGATIVE);//开始窗体动画

        this.ShowInTaskbar = false;

        Timer_Close.Interval = 4000;
        Timer_Close.Tick += new EventHandler(Timer_Close_Tick);
        Timer_Close.Start();
    }

    /// <summary>
    /// 关闭窗口的定时器响应事件
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void Timer_Close_Tick(object sender, EventArgs e)
    {
        Timer_Close.Stop();

        this.Close();

///

/// 窗口已经关闭
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void FormMessageBox_FormClosed(object sender, FormClosedEventArgs e)
    {
        AnimateWindow(this.Handle, 500, AW_SLIDE + AW_VER_POSITIVE + AW_HIDE);

        Timer_Close.Stop();
        Timer_Close.Dispose();
    }

    /// <summary>
    /// 鼠标移动在消息框上
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void plShow_MouseMove(object sender, MouseEventArgs e)
    {
        this.Timer_Close.Stop();
    }

    /// <summary>
    /// 鼠标移动离开消息框上
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void plShow_MouseLeave(object sender, EventArgs e)
    {
        this.Timer_Close.Start();
    }

endregion*

代码已经完全提供

时间: 2024-12-23 17:32:57

c#桌面应用程序如何添加弹出式广告的相关文章

c#应用程序如何添加弹出式广告功能

使用c#语言,如何实现像搜狗输入法以及灵格斯翻译软件的屏幕右下角弹出式广告呢? c#code如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Run

JavaScript-1.最简单的程序之网页弹出对话框,显示为Warning---ShinePans

show和set命令是两条用于维护SQLPlus系统变量的命令 : SQL> show all --查看所有系统变量值 SQL>show user --显示当前连接用户 SQL>show error --显示错误(编译function,procedure,package,pl/sql的时候,可以查看具体的错误提示) SQL>set sqlprompt SQL  --设置默认提示符,默认值就是SQL SQL>set linesize 1000 --设置屏幕显示行宽,默认100

# Transition:添加弹出过渡效果

# Transition:添加弹出过渡效果 通过鼠标的单击.获得焦点,被点击或对元素任何改变中触发,并平滑地以动画效果改变CSS的属性值. W3C-transition MDN-transition 在CSS中创建简单的过渡效果可以从以下几个步骤来实现: 第一,在默认样式中声明元素的初始状态样式: 第二,声明过渡元素中点值样式,比如悬浮状态: 第三,在默认样式中通过添加过渡函数,添加一些不同的样式. transition:为一个元素在不同状态之间切换的时候定义不同的过渡效果. transitio

从仿QQ消息提示框来谈弹出式对话框

<代码里的世界> -UI篇 用文字札记描绘自己 android学习之路 转载请保留出处 by Qiao http://blog.csdn.net/qiaoidea/article/details/45896477 [导航] - 自定义弹出式对话框的简单用法 列举各种常见的对话框实现方案 1.概述 android原生控件向来以丑著称(新推出的Material Design当另说),因此几乎所有的应用都会特殊定制自己的UI样式.而其中弹出式提示框的定制尤为常见,本篇我们将从模仿QQ退出提示框来看一

Operating System-Thread(5)弹出式线程&amp;&amp;使单线程代码多线程化会产生那些问题

本文主要内容 弹出式线程(Pop-up threads) 使单线程代码多线程化会产生那些问题 一.弹出式线程(Pop-up threads) 以在一个http到达之后一个Service的处理为例子来介绍弹出式线程. 上面的例子中传统的做法有可能是在Service中有一个线程一直在等待request的到达,等request到达后这个线程会开始检查请求最后在进行处理.当这个线程在处理request的时候,后面来的request会被block,一直到线程处理完当前request为止.如下图所示. 弹出

PropertyGrid—为复杂属性提供下拉式编辑框和弹出式编辑框

零.引言 PropertyGrid中我们经常看到一些下拉式的编辑方式(Color属性)和弹出式编辑框(字体),这些都是为一些复杂的属性提供的编辑方式,本文主要说明如何实现这样的编辑方式. 一.为属性提供编辑类 弹出式和下拉式是如何实现的呢,这需要为属性提供一个专门的编辑类..Net为我们提供了一个System.Drawing.Design.UITypeEditor类,它是所有编辑类的基类,从他继承出了诸如ColorEditor.FontEditor的类,因此我们可以在属性框中编辑颜色和字体.定义

导航条——弹出式悬浮菜单

1.概述 采用弹出式悬浮菜单,不但可以使网站的导航内容更加清晰,而且不影响页面的整体效果.运行本实例,如图1所示,当鼠标移动到一级导航菜单的标题上时,将弹出悬浮菜单显示该菜单对应的子菜单,鼠标移出时,将隐藏悬浮菜单. 2.技术要点 本实例主要是在JavaScript中,动态改变<div>标签对象的style属性的display属性值来实现动态显示和隐藏二级导航菜单.其实,每一个一级菜单下的二级菜单内容是已经添加在网页的<div>标签中,只是此时设置了<div>不显示.所

JS框架_(jQuery.js)Tooltip弹出式按钮插件

弹出式按钮效果 <!DOCTYPE html> <html > <head> <meta charset="UTF-8"> <title>jQuery实现Tooltip弹出样式的分享按钮DEMO演示</title> <link rel="stylesheet" href="css/style.css"> </head> <body><

IOS 弹出式 POPMenuView

//MenuView.h // //  MenuView.h //  RockPopMenu // //  Created by zhuang chaoxiao on 14-6-26. //  Copyright (c) 2014年 zhuang chaoxiao. All rights reserved. // #import <UIKit/UIKit.h> @protocol MenuViewDelegate @optional @end @interface MenuView : UIV