MFC上下浮动与渐入渐出消息提示框实现

本文介绍了如何在MFC中实现上下浮动和渐入渐出效果的消息提示框。通过定时器控制MoveWindow实现上下浮动,使用AnimateWindow API达成淡入淡出效果。代码示例包括UpDownTipDlg和InOutTipDlg两个类,需要注意的是InOutTipDlg存在内存泄露问题,建议在对话框销毁时添加回调删除接口以解决。
摘要由CSDN通过智能技术生成

类似QQ与360软件,消息提示有两种。上下浮动、渐入渐出。


1、上下浮动提示框实现

机制,定时器响应上下浮动消息。

主要API:MoveWindow。


源码如下UpDownTipDlg.h、UpDownTipDlg.cpp。

UpDownTipDlg.h

/*
*@brief 上下浮动提示框
*@date 2012-8-9
*/
#pragma once


// CUpDownTipDlg dialog

class CUpDownTipDlg : public CDialog
{
    DECLARE_DYNAMIC(CUpDownTipDlg)

public:
    CUpDownTipDlg(CWnd* pParent = NULL);   // standard constructor
    virtual ~CUpDownTipDlg();

    // Dialog Data
    enum { IDD = IDD_MCMSG_DLG };

    void ShowMsgWindow(CWnd* pParent, const CString& strTipInfo);

protected:
    virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
    virtual BOOL OnInitDialog();
    //响应关闭消息,删除对象
    virtual void OnCancel();
    virtual void PostNcDestroy();
    afx_msg void OnTimer(UINT_PTR nIDEvent);
    afx_msg void OnBnClickedOk();
    afx_msg void OnBnClickedCancel();

    DECLARE_MESSAGE_MAP()

private:
    void InitDlgPosition();

private:
    CString m_strTipInfo;
};

UpDownTipDlg.cpp

// MCMsgTipDlg.cpp : implementation file
//

#include "stdafx.h"
#include "mcmsgtip_demo.h"
#include "UpDownTipDlg.h"

const UINT_PTR POP_WINDOW = 1;
const UINT_PTR DISPLAY_DELAY = 2;
const UINT_PTR CLOSE_WINDOW = 3;

const UINT POP_ELAPSE = 1;
const UINT DELAY_ELAPSE = 5000;
const UINT CLOSE_ELAPSE = 1;

//上下浮动跨度
const UINT FLOAT_SPAN = 2;

// CUpDownTipDlg dialog

IMPLEMENT_DYNAMIC(CUpDownTipDlg, CDialog)

CUpDownTipDlg::CUpDownTipDlg(CWnd* pParent /*=NULL*/)
: CDialog(CUpDownTipDlg::IDD, pParent)
, m_strTipInfo(_T(""))
{

}

CUpDownTipDlg::~CUpDownTipDlg()
{
}

void CU
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值