📄 showdataview.cpp
字号:
// ShowDataView.cpp : implementation file
//
#include "stdafx.h"
#include "process.h"
#include "ShowDataView.h"
#include "ProcessDoc.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CShowDataView
IMPLEMENT_DYNCREATE(CShowDataView, CView)
CShowDataView::CShowDataView()
{
m_ListCtrl.DefaultText="0.00";
m_SHOWDATA=TRUE;
}
CShowDataView::~CShowDataView()
{
}
BEGIN_MESSAGE_MAP(CShowDataView, CView)
//{{AFX_MSG_MAP(CShowDataView)
ON_WM_SIZE()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CShowDataView drawing
void CShowDataView::OnInitialUpdate()
{
CView::OnInitialUpdate();
// OnUpdate(NULL, 0, NULL);
//
// CSize sizeTotal;
// // TODO: calculate the total size of this view
// sizeTotal.cx =200;
// sizeTotal.cy = 80000;
// SetScrollSizes(MM_TEXT, sizeTotal);
// TODO: Add your specialized code here and/or call the base class
CRect ClientRect;
GetClientRect (&ClientRect);
//if(m_ListCtrl.m_hWnd)
if (!m_ListCtrl.Create (WS_VISIBLE | LVS_REPORT | /*LVS_SINGLESEL | */ LVS_EDITLABELS, ClientRect, this, ID_LIST_VIEW))
return;
m_ListCtrl.SetExtendedStyle (LVS_EX_GRIDLINES);
m_ListCtrl.InsertColumn(0,"No",LVCFMT_CENTER);
CString str="深度";
m_ListCtrl.InsertColumn(1,str,LVCFMT_CENTER);
str="曲线值";
m_ListCtrl.InsertColumn(2,str,LVCFMT_CENTER);
m_ListCtrl.SetColumnWidth(0,30);//ClientRect.Width()/2);
m_ListCtrl.SetColumnWidth(1,(ClientRect.Width()-30)/2);
m_ListCtrl.SetColumnWidth(2,(ClientRect.Width()-30)/2);
m_ListCtrl.InsertItemEx (0);
}
void CShowDataView::OnDraw(CDC* pDC)
{
CProcessDoc* pDoc = (CProcessDoc*)GetDocument();
if(pDoc->m_SHOWDATAVIEW==TRUE)
{
CString disp;
if(pDoc->DataNum>0) m_ListCtrl.DeleteAllItems();
for(int i=0;i<pDoc->DataNum;i++)
{
disp.Format("%d",i+1);
m_ListCtrl.InsertItem(i,(LPCTSTR)disp);
m_ListCtrl.SetItemText(i,0,(LPCTSTR)disp);
disp.Format("%f",pDoc->DataDepth[i]);
m_ListCtrl.SetItemText(i,1,(LPCTSTR)disp);
disp.Format("%f",pDoc->DataData[i]);
m_ListCtrl.SetItemText(i,2,(LPCTSTR)disp);
}
}pDoc->m_SHOWDATAVIEW=FALSE;
/*
CProcessApp *app=(CProcessApp *)AfxGetApp();
if(app->DRAWBPNN==TRUE)
{
CString disp;
if(app->DataNum>0) m_ListCtrl.DeleteAllItems();
for(int i=0;i<app->DataNum;i++)
{
disp.Format("%d",i+1);
m_ListCtrl.InsertItem(i,(LPCTSTR)disp);
m_ListCtrl.SetItemText(i,0,(LPCTSTR)disp);
disp.Format("%f",pDoc->DataWaveletLow[i]);
m_ListCtrl.SetItemText(i,1,(LPCTSTR)disp);
disp.Format("%f",pDoc->DataWaveletHigh[i]);
m_ListCtrl.SetItemText(i,2,(LPCTSTR)disp);
}
}*/
// pDoc->UpdateAllViews(NULL);
// app->DRAWBPNN=FALSE;
/*
//设置字体!!!
LOGFONT logFont;
logFont.lfHeight=11;
logFont.lfWeight=FW_BOLD;
logFont.lfOrientation=0;
logFont.lfEscapement=0;
logFont.lfStrikeOut=0;
logFont.lfUnderline=0;
logFont.lfItalic=0;
logFont.lfCharSet=GB2312_CHARSET;
logFont.lfOutPrecision=OUT_DEFAULT_PRECIS;
logFont.lfClipPrecision=CLIP_DEFAULT_PRECIS;
logFont.lfQuality=DEFAULT_QUALITY;
logFont.lfPitchAndFamily=DEFAULT_PITCH|FF_ROMAN;
strcpy(logFont.lfFaceName,"The Times Roman");
CFont font;
font.CreateFontIndirect(&logFont);
CFont* oldFont=pDC->SelectObject(&font);
/ *
CRect Rect;
GetClientRect(&Rect);
pDC->SetTextColor(RGB(255,0,0));
pDC->DrawText("线程同步--使用互斥",Rect,DT_CENTER|DT_VCENTER|DT_SINGLELINE);
* /
int i,j,nHeight;
TEXTMETRIC tm;
CString str1,str2,str;
pDC->TextOut( 20,0,"井深---------数据");
pDC->GetTextMetrics(&tm);
nHeight=tm.tmHeight+tm.tmExternalLeading-2;
j=pDoc->DataNum;
for(i=0;i<j;i++)
{
//CString ss;
str1.Format("%f ",pDoc->DataDepth[i]);
str2.Format("%f",pDoc->DataData[i]);
str=str1+str2;
pDC->TextOut( 0,10+i*nHeight,str);
}
pDC->SelectObject(oldFont);*/
}
/////////////////////////////////////////////////////////////////////////////
// CShowDataView diagnostics
#ifdef _DEBUG
void CShowDataView::AssertValid() const
{
CView::AssertValid();
}
void CShowDataView::Dump(CDumpContext& dc) const
{
CView::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CShowDataView message handlers
void CShowDataView::OnSize(UINT nType, int cx, int cy)
{
CView::OnSize(nType, cx, cy);
CView::OnInitialUpdate();
CRect ClientRect;
GetClientRect (&ClientRect);
if(m_ListCtrl.m_hWnd)
{
m_ListCtrl.SetColumnWidth(0,30);//ClientRect.Width()/2);
m_ListCtrl.SetColumnWidth(1,(ClientRect.Width()-30)/2);
m_ListCtrl.SetColumnWidth(2,(ClientRect.Width()-30)/2);
m_ListCtrl.Resize(cx,cy);
}
}
CProcessDoc * CShowDataView::GetDocument()
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CProcessDoc)));
return (CProcessDoc*)m_pDocument;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -