📄 msgview.cpp
字号:
// MsgView.cpp : implementation file
//
#include "stdafx.h"
#include "FTPTranser.h"
#include "FTPTranserDoc.h"
#include "MsgView.h"
#include ".\msgview.h"
// CMsgView
IMPLEMENT_DYNCREATE(CMsgView, CScrollView)
CMsgView::CMsgView()
{
}
CMsgView::~CMsgView()
{
}
BEGIN_MESSAGE_MAP(CMsgView, CScrollView)
END_MESSAGE_MAP()
// CMsgView drawing
void CMsgView::OnInitialUpdate()
{
CScrollView::OnInitialUpdate();
CSize sizeTotal;
// TODO: calculate the total size of this view
sizeTotal.cx = sizeTotal.cy = 100;
SetScrollSizes(MM_TEXT, sizeTotal);
}
void CMsgView::OnDraw(CDC* pDC)
{
CFTPTranserDoc* pDoc = (CFTPTranserDoc*)GetDocument();
if(pDoc == NULL)
return;
//如果什么都没有要写的,就返回
pDoc->sec.Lock();
if(pDoc->myList.GetSize() <= 0)
return;
POSITION pos = pDoc->myList.GetHeadPosition();
for( int i=0;i<pDoc->myList.GetSize();i++)
{
CString &str = pDoc->myList.GetNext(pos);
int y = i*20+MARGIN;
pDC->TextOut(MARGIN,y,str);
}
pDoc->sec.Unlock();
// TODO: add draw code here
}
// CMsgView diagnostics
#ifdef _DEBUG
void CMsgView::AssertValid() const
{
CScrollView::AssertValid();
}
void CMsgView::Dump(CDumpContext& dc) const
{
CScrollView::Dump(dc);
}
#endif //_DEBUG
// CMsgView message handlers
void CMsgView::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint)
{
CScrollView::OnUpdate(pSender,lHint,pHint);
if(!this->IsWindowVisible())
return;
CFTPTranserDoc * pDoc = (CFTPTranserDoc *)GetDocument();
if(pDoc == NULL)
return;
pDoc->sec.Lock();
if(pDoc->myList.GetSize() <= 0)
{
pDoc->sec.Unlock();
return;
}
int maxlen = 0;
int lennum = (int)pDoc->myList.GetSize();
POSITION pos = pDoc->myList.GetHeadPosition();
for(int i = 0; i<lennum ; i++)
{
CString& str = pDoc->myList.GetAt(pos);
if(str.GetLength() > maxlen)
maxlen = str.GetLength();
pDoc->myList.GetNext(pos);
}
pDoc->sec.Unlock();
SIZE size;
size.cx = maxlen * 8 + MARGIN;
size.cy = lennum * 20 + MARGIN;
SetScrollSizes(MM_TEXT,size);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -