wsnview.cpp
来自「无线传感器网络mrps协议算法的vc实现算法」· C++ 代码 · 共 182 行
CPP
182 行
// WsnView.cpp : implementation of the CWsnView class
//
#include "stdafx.h"
#include "Wsn.h"
#include "WsnDoc.h"
#include "WsnView.h"
#include "InitParameter.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CWsnView
IMPLEMENT_DYNCREATE(CWsnView, CView)
BEGIN_MESSAGE_MAP(CWsnView, CView)
//{{AFX_MSG_MAP(CWsnView)
ON_COMMAND(ID_INIT_PARA, OnInitPara)
ON_COMMAND(ID_CTR_START, OnCtrStart)
//}}AFX_MSG_MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CWsnView construction/destruction
CWsnView::CWsnView()
{
// TODO: add construction code here
m_Binitpar_set = FALSE;
m_Brunpar_set = FALSE;
}
CWsnView::~CWsnView()
{
}
BOOL CWsnView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
return CView::PreCreateWindow(cs);
}
/////////////////////////////////////////////////////////////////////////////
// CWsnView drawing
void CWsnView::OnDraw(CDC* pDC)
{
CWsnDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
MessageBox("fsfdaaaaaa");
}
/////////////////////////////////////////////////////////////////////////////
// CWsnView printing
BOOL CWsnView::OnPreparePrinting(CPrintInfo* pInfo)
{
// default preparation
return DoPreparePrinting(pInfo);
}
void CWsnView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add extra initialization before printing
}
void CWsnView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add cleanup after printing
}
/////////////////////////////////////////////////////////////////////////////
// CWsnView diagnostics
#ifdef _DEBUG
void CWsnView::AssertValid() const
{
CView::AssertValid();
}
void CWsnView::Dump(CDumpContext& dc) const
{
CView::Dump(dc);
}
CWsnDoc* CWsnView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CWsnDoc)));
return (CWsnDoc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CWsnView message handlers
void CWsnView::OnInitPara()
{
// TODO: Add your command handler code here
CInitParameter dlg;
this->Invalidate();
if(IDOK==dlg.DoModal())
{
m_datasize = dlg.m_datasize;
m_rectlenth = dlg.m_rectlenth;
m_rectwidth = dlg.m_rectwidth;
m_hcellnum = dlg.m_hcellnum;
m_vcellnum = dlg.m_vcellnum;
m_initnode_energy = dlg.m_initnode_energy;
m_sink_position = dlg.m_sink_position;
m_node_num = dlg.m_node_num;
m_Binitpar_set = TRUE;
}
UpdateData();
}
void CWsnView::OnCtrStart()
{
// TODO: Add your command handler code here
CClientDC dc(this);
CString str="(0,0)";
CPoint oriPoint;
oriPoint.x=40;
oriPoint.y=380;
if(m_Binitpar_set == TRUE)
{
/*画坐标系 坐标系长为670,宽为370,矩形区域长为650,宽为350*/
dc.MoveTo(oriPoint);
dc.LineTo(oriPoint.x,oriPoint.y-370);
dc.MoveTo(oriPoint.x,oriPoint.y-370);
dc.LineTo(oriPoint.x-5,oriPoint.y-370+5);
dc.MoveTo(oriPoint.x,oriPoint.y-370);
dc.LineTo(oriPoint.x+5,oriPoint.y-370+5);
dc.MoveTo(oriPoint);
dc.LineTo(oriPoint.x+670,oriPoint.y);
dc.MoveTo(oriPoint.x+670,oriPoint.y);
dc.LineTo(oriPoint.x+670-5,oriPoint.y-5);
dc.MoveTo(oriPoint.x+670,oriPoint.y);
dc.LineTo(oriPoint.x+670-5,oriPoint.y+5);
/*根据矩形区域大小标识坐标*/
char buffer[20];
int i;
dc.TextOut(oriPoint.x-10,oriPoint.y+10,"0");
for(i=1;i<=m_hcellnum;i++)
{
dc.MoveTo(oriPoint.x+650*i/m_hcellnum,oriPoint.y);
dc.LineTo(oriPoint.x+650*i/m_hcellnum,oriPoint.y+3);
itoa(m_rectlenth*i/m_hcellnum,buffer,10);
dc.TextOut(oriPoint.x-10+650*i/m_hcellnum,oriPoint.y+15,buffer);
}
for(i=1;i<=m_vcellnum;i++)
{
dc.MoveTo(oriPoint.x,oriPoint.y-350*i/m_vcellnum);
dc.LineTo(oriPoint.x-3,oriPoint.y-350*i/m_vcellnum);
itoa(m_rectwidth*i/m_vcellnum,buffer,10);
dc.TextOut(oriPoint.x-30,oriPoint.y-350*i/m_vcellnum,buffer);
}
}
else
{
MessageBox("请先设置初始参数!");
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?