MFC渐入渐出框实现方式(三)

2014-11-24 11:02:55 · 作者: · 浏览: 1
p。
[cpp]
#include "StdAfx.h"
#include "mcmsgtip_demo.h"
#include "MsgTipMng.h"

class vcttip_finder
{
public:
vcttip_finder(int nTipID)
: m_nTipID(nTipID)
{
}

bool operator()(const CMsgTipDlg* pTipDlg)
{
if (NULL == pTipDlg)
{
return false;
}

int nInTipID = pTipDlg->GetTipID();

return (m_nTipID == nInTipID);
}

private:
int m_nTipID;
};

CMsgTipMng::CMsgTipMng(void)
: m_bInShow(false)
{
}

CMsgTipMng::~CMsgTipMng(void)
{
}

void CMsgTipMng::AddTipWindow(const CString& strTipInfo)
{
m_vTipVct.push_back(new CMsgTipDlg(this, strTipInfo));

ShowTipWindow();
}

void CMsgTipMng::RemoveTipWindow(int nTipID)
{
vector::iterator vIter =
find_if(m_vTipVct.begin(), m_vTipVct.end(), vcttip_finder(nTipID));
if (vIter == m_vTipVct.end())
{
return;
}

m_vTipVct.erase(vIter);

m_bInShow = false;

ShowTipWindow();
}

void CMsgTipMng::ShowTipWindow()
{
if (m_vTipVct.empty())
{
return;
}

if (m_bInShow)
{
return;
}

m_bInShow = true;
m_vTipVct[0]->ShowMsgWindow();
}

3、消息框显示
m_pTipMng为成员变量,类型CMsgTipMng*。
显示对话框:

m_pTipMng->AddTipWindow(_T("Hello World!"));

作者:segen_jaa