175 lines
4.0 KiB
C++
175 lines
4.0 KiB
C++
|
// DLG_RecvSms.cpp : implementation file
|
|||
|
//
|
|||
|
|
|||
|
#include "stdafx.h"
|
|||
|
#include "CorpSms.h"
|
|||
|
#include "DLG_RecvSms.h"
|
|||
|
|
|||
|
#ifdef _DEBUG
|
|||
|
#define new DEBUG_NEW
|
|||
|
#undef THIS_FILE
|
|||
|
static char THIS_FILE[] = __FILE__;
|
|||
|
#endif
|
|||
|
|
|||
|
/////////////////////////////////////////////////////////////////////////////
|
|||
|
// DLG_RecvSms dialog
|
|||
|
|
|||
|
#include "Memdc.h"
|
|||
|
|
|||
|
DLG_RecvSms::DLG_RecvSms(CWnd* pParent /*=NULL*/)
|
|||
|
: CDialog(DLG_RecvSms::IDD, pParent)
|
|||
|
{
|
|||
|
//{{AFX_DATA_INIT(DLG_RecvSms)
|
|||
|
// NOTE: the ClassWizard will add member initialization here
|
|||
|
//}}AFX_DATA_INIT
|
|||
|
|
|||
|
m_lCount = 0;
|
|||
|
memset(m_szTitle,0,sizeof(m_szTitle));
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void DLG_RecvSms::DoDataExchange(CDataExchange* pDX)
|
|||
|
{
|
|||
|
CDialog::DoDataExchange(pDX);
|
|||
|
//{{AFX_DATA_MAP(DLG_RecvSms)
|
|||
|
// NOTE: the ClassWizard will add DDX and DDV calls here
|
|||
|
//}}AFX_DATA_MAP
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
BEGIN_MESSAGE_MAP(DLG_RecvSms, CDialog)
|
|||
|
//{{AFX_MSG_MAP(DLG_RecvSms)
|
|||
|
ON_WM_PAINT()
|
|||
|
ON_WM_CLOSE()
|
|||
|
ON_WM_TIMER()
|
|||
|
ON_WM_LBUTTONDOWN()
|
|||
|
//}}AFX_MSG_MAP
|
|||
|
END_MESSAGE_MAP()
|
|||
|
|
|||
|
/////////////////////////////////////////////////////////////////////////////
|
|||
|
// DLG_RecvSms message handlers
|
|||
|
|
|||
|
BOOL DLG_RecvSms::OnInitDialog()
|
|||
|
{
|
|||
|
CDialog::OnInitDialog();
|
|||
|
|
|||
|
CBitmap bmpMain; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>
|
|||
|
BITMAP BitMap; //<2F><><EFBFBD><EFBFBD>ȡλͼ<CEBB>Ĵ<EFBFBD>С
|
|||
|
long lTemp;
|
|||
|
lTemp = bmpMain.LoadBitmap( IDB_S_RECVSMS ); //װ<><D7B0>λͼ
|
|||
|
lTemp = bmpMain.GetBitmap( &BitMap ); //ȡ<><C8A1>λͼ<CEBB>Ĵ<EFBFBD>С
|
|||
|
|
|||
|
xBmp = BitMap.bmWidth+2;
|
|||
|
yBmp = BitMap.bmHeight+2;
|
|||
|
|
|||
|
|
|||
|
HDC hScrDC; // <20><>Ļ<EFBFBD><C4BB><EFBFBD>ڴ<EFBFBD><DAB4>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//Ϊ<><CEAA>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
hScrDC = CreateDC(_T("DISPLAY"), NULL, NULL, NULL);
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>
|
|||
|
xScrn = GetDeviceCaps(hScrDC, HORZRES);
|
|||
|
yScrn = GetDeviceCaps(hScrDC, VERTRES);
|
|||
|
|
|||
|
MoveWindow( xScrn , yScrn , xBmp , yBmp );
|
|||
|
|
|||
|
SetTimer( 1 , 100 , NULL );
|
|||
|
|
|||
|
return TRUE; // return TRUE unless you set the focus to a control
|
|||
|
// EXCEPTION: OCX Property Pages should return FALSE
|
|||
|
}
|
|||
|
|
|||
|
void DLG_RecvSms::OnPaint()
|
|||
|
{
|
|||
|
CPaintDC dc(this); // device context for painting
|
|||
|
|
|||
|
CMemDC_R memDC(&dc);
|
|||
|
|
|||
|
CDC pDispDC;
|
|||
|
pDispDC.CreateCompatibleDC( &memDC );
|
|||
|
CBitmap bmpMain; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>
|
|||
|
CBitmap * OldBmp; //<2F><>¼<EFBFBD>ɵ<EFBFBD>Bitmap
|
|||
|
BITMAP BitMap; //<2F><><EFBFBD><EFBFBD>ȡλͼ<CEBB>Ĵ<EFBFBD>С
|
|||
|
long lTemp;
|
|||
|
lTemp = bmpMain.LoadBitmap( IDB_S_RECVSMS ); //װ<><D7B0>λͼ
|
|||
|
lTemp = bmpMain.GetBitmap( &BitMap ); //ȡ<><C8A1>λͼ<CEBB>Ĵ<EFBFBD>С
|
|||
|
//HBITMAP bmp;
|
|||
|
//bmp = (HBITMAP)LoadImage( NULL,"Main.bmp",IMAGE_BITMAP,0,0,LR_DEFAULTCOLOR|LR_LOADFROMFILE);
|
|||
|
//GetObject(bmp, sizeof(BitMap), &BitMap);
|
|||
|
//CBitmap * pbmp;
|
|||
|
//pbmp = CBitmap::FromHandle( bmp );
|
|||
|
|
|||
|
//OldBmp = pDispDC.SelectObject( &bmpMain );//ѡ<><D1A1>λͼ
|
|||
|
OldBmp = pDispDC.SelectObject( &bmpMain );//ѡ<><D1A1>λͼ
|
|||
|
memDC.BitBlt( 0 , 0 , BitMap.bmWidth , BitMap.bmHeight , &pDispDC , 0 , 0 , SRCCOPY );
|
|||
|
memDC.SetBkMode(TRANSPARENT);
|
|||
|
if ( _tcslen(m_szTitle) > 0 )
|
|||
|
memDC.TextOut( 50 , 15 , m_szTitle );
|
|||
|
else
|
|||
|
memDC.TextOut( 50 , 15 , _T("<EFBFBD>յ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ") );
|
|||
|
memDC.TextOut( 5 , 40 , m_Sms.szSender );
|
|||
|
memDC.TextOut( 5 , 60 , m_Sms.szTime );
|
|||
|
memDC.TextOut( 5 , 80 , m_Sms.szMsg );
|
|||
|
|
|||
|
//<2F>ָ<EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD>BMP
|
|||
|
pDispDC.SelectObject( OldBmp );
|
|||
|
CDialog::OnPaint();
|
|||
|
}
|
|||
|
|
|||
|
void DLG_RecvSms::SetPara(SMS_Recv2 *pSms,const TCHAR * pTitle)
|
|||
|
{
|
|||
|
memcpy( &m_Sms , pSms , sizeof(m_Sms) );
|
|||
|
|
|||
|
if ( pTitle )
|
|||
|
_tcscpy(m_szTitle , pTitle );
|
|||
|
}
|
|||
|
|
|||
|
void DLG_RecvSms::OnClose()
|
|||
|
{
|
|||
|
CDialog::OnClose();
|
|||
|
this->DestroyWindow();
|
|||
|
delete this;
|
|||
|
}
|
|||
|
|
|||
|
void DLG_RecvSms::OnTimer(UINT nIDEvent)
|
|||
|
{
|
|||
|
switch( nIDEvent )
|
|||
|
{
|
|||
|
case 1:
|
|||
|
m_lCount +=5;
|
|||
|
if ( m_lCount >= yBmp +50 ) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
KillTimer( 1 );
|
|||
|
SetTimer(2 , 5000 , NULL ); //5<><35><EFBFBD>Ӻ<EFBFBD><D3BA>˳<EFBFBD>
|
|||
|
return ;
|
|||
|
}
|
|||
|
MoveWindow( xScrn - xBmp -20 , yScrn - m_lCount , xBmp , yBmp );
|
|||
|
break;
|
|||
|
case 2:
|
|||
|
KillTimer(2);
|
|||
|
SetTimer(3 , 70 , NULL); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
break;
|
|||
|
case 3:
|
|||
|
m_lCount -=5;
|
|||
|
if ( m_lCount <= 0 ) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
{
|
|||
|
KillTimer( 3 );
|
|||
|
this->OnClose();
|
|||
|
return ;
|
|||
|
}
|
|||
|
MoveWindow( xScrn - xBmp -20 , yScrn - m_lCount , xBmp , yBmp );
|
|||
|
break;
|
|||
|
}
|
|||
|
|
|||
|
CDialog::OnTimer(nIDEvent);
|
|||
|
}
|
|||
|
|
|||
|
void DLG_RecvSms::OnLButtonDown(UINT nFlags, CPoint point)
|
|||
|
{
|
|||
|
KillTimer(1);
|
|||
|
KillTimer(2);
|
|||
|
SetTimer(3 , 30 , NULL); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
|
|||
|
|
|||
|
CDialog::OnLButtonDown(nFlags, point);
|
|||
|
}
|