You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
101 lines
2.2 KiB
C++
101 lines
2.2 KiB
C++
|
|
#include "stdafx.h"
|
|
#include "LaiPuLaser.h"
|
|
#include "DlgLayerViewShow.h"
|
|
#include "afxdialogex.h"
|
|
#include "GlobalDrawMgr.h"
|
|
#include "Layer.h"
|
|
#include "ModuleDeviceMgr.h"
|
|
#include "ModuleDrawMgr.h"
|
|
#include "LogMgr.h"
|
|
|
|
|
|
|
|
IMPLEMENT_DYNAMIC(CDlgLayerViewShow, CDialogEx)
|
|
BEGIN_MESSAGE_MAP(CDlgLayerViewShow, CDialogEx)
|
|
ON_WM_TIMER()
|
|
ON_WM_COPYDATA()//响应消息
|
|
END_MESSAGE_MAP()
|
|
|
|
#define ID_DRAW_TIMER 1//绘制timer ID
|
|
#define DRAW_TIME_DELAY 100 //绘制timer 的延时
|
|
#define DRAW_TIME_DELAY2 4000 //绘制timer 的延时
|
|
|
|
|
|
CDlgLayerViewShow::CDlgLayerViewShow(CWnd* pParent /*=NULL*/)
|
|
: CDialogEx(CDlgLayerViewShow::IDD, pParent)
|
|
{
|
|
}
|
|
|
|
CDlgLayerViewShow::~CDlgLayerViewShow()
|
|
{
|
|
gDraw->ResetView();
|
|
}
|
|
void CDlgLayerViewShow::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialogEx::DoDataExchange(pDX);
|
|
|
|
}
|
|
|
|
BOOL CDlgLayerViewShow::OnInitDialog()
|
|
{
|
|
CDialogEx::OnInitDialog();
|
|
gDraw->SetViewToDlg();
|
|
|
|
UpdateData(FALSE);
|
|
|
|
SetTimer(ID_DRAW_TIMER,DRAW_TIME_DELAY,NULL);
|
|
return TRUE;
|
|
}
|
|
void CDlgLayerViewShow::OnTimer(UINT nIDEvent)
|
|
{
|
|
if(nIDEvent == ID_DRAW_TIMER)
|
|
{
|
|
KillTimer(ID_DRAW_TIMER);
|
|
ReDraw();
|
|
//避免拖动引起的显示问题,重绘
|
|
SetTimer(ID_DRAW_TIMER,DRAW_TIME_DELAY2,NULL);
|
|
}
|
|
CDialog::OnTimer(nIDEvent);
|
|
}
|
|
BOOL CDlgLayerViewShow::OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct)
|
|
{
|
|
CString strRecievedText = (LPCSTR)(pCopyDataStruct->lpData);
|
|
if("Invalidate"==strRecievedText)
|
|
{
|
|
SetTimer(ID_DRAW_TIMER,DRAW_TIME_DELAY,NULL);
|
|
}
|
|
return CDialogEx::OnCopyData(pWnd, pCopyDataStruct);
|
|
}
|
|
//用于非模态对话框自动销毁
|
|
void CDlgLayerViewShow::PostNcDestroy()
|
|
{
|
|
gDraw->ResetView();
|
|
CDialogEx::PostNcDestroy();
|
|
delete this;
|
|
}
|
|
void CDlgLayerViewShow::OnCancel()
|
|
{
|
|
//CDialogEx::OnCancel();
|
|
DestroyWindow();
|
|
}
|
|
|
|
HDC CDlgLayerViewShow::GetHDC()
|
|
{
|
|
return ::GetDC(GetSafeHwnd());
|
|
}
|
|
CDC* CDlgLayerViewShow::GetCDC()
|
|
{
|
|
return CDC::FromHandle(GetHDC());
|
|
}
|
|
void CDlgLayerViewShow::ReDraw()
|
|
{
|
|
gLogMgr->WriteDebugLog("CDlgLayerViewShowReDraw");
|
|
|
|
CDC *pDC = GetCDC();
|
|
gModuleDeviceMgr.Draw(pDC);
|
|
gModuleDrawMgr.Draw(pDC);
|
|
gLayer.Draw(pDC);
|
|
}
|
|
|