📄 sendview.cpp
字号:
// SendView.cpp : 实现文件
//
#include "stdafx.h"
#include "Chatter.h"
#include "SendView.h"
#include "ChatterDoc.h"
static CString RandomString();
// CSendView
IMPLEMENT_DYNCREATE(CSendView, CEditView)
BEGIN_MESSAGE_MAP(CSendView, CEditView)
ON_WM_CHAR()
ON_WM_TIMER()
ON_COMMAND(ID_AUTOCHATTER, OnAutochatter)
ON_UPDATE_COMMAND_UI(ID_AUTOCHATTER, OnUpdateAutochatter)
END_MESSAGE_MAP()
CSendView::CSendView()
{
m_TimerID = 0;
}
CSendView::~CSendView()
{
}
// CSendView 诊断
#ifdef _DEBUG
void CSendView::AssertValid() const
{
CEditView::AssertValid();
}
void CSendView::Dump(CDumpContext& dc) const
{
CEditView::Dump(dc);
}
#endif //_DEBUG
// CSendView 消息处理程序
BOOL CSendView::PreCreateWindow(CREATESTRUCT& cs)
{
BOOL ret = CEditView::PreCreateWindow(cs);
cs.style = AFX_WS_DEFAULT_VIEW | WS_VSCROLL | ES_AUTOHSCROLL |
ES_AUTOVSCROLL | ES_MULTILINE | ES_NOHIDESEL;
return ret;
}
void CSendView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
if ((nChar != VK_RETURN) || (nRepCnt!=1))
{
CEditView::OnChar(nChar, nRepCnt, nFlags);
return;
}
else
{
CChatterDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
CString strText;
GetEditCtrl().GetWindowText(strText);
pDoc->SendMsg(strText);
strText=_T("");
GetEditCtrl().SetWindowText(strText);
}
}
BOOL CSendView::DestroyWindow()
{
if (m_TimerID != 0)
KillTimer(m_TimerID);
return CEditView::DestroyWindow();
}
void CSendView::OnTimer(UINT nIDEvent)
{
CChatterDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (pDoc->m_bAutoChat)
{
CString temp = RandomString();
if (!temp.IsEmpty())
pDoc->SendMsg(temp);
}
else
{
KillTimer(m_TimerID);
m_TimerID = 0;
}
CEditView::OnTimer(nIDEvent);
}
void CSendView::OnAutochatter()
{
CChatterDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc->m_bAutoChat)
{
pDoc->m_bAutoChat = TRUE;
m_TimerID = SetTimer(1, 1000, NULL);
}
else
{
pDoc->m_bAutoChat = FALSE;
KillTimer(m_TimerID);
}
}
void CSendView::OnUpdateAutochatter(CCmdUI* pCmdUI)
{
CChatterDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
pCmdUI->SetCheck(pDoc->m_bAutoChat);
}
static CString RandomString()
{
CString strResult;
UINT val1 = (rand()%36) + IDS_STATEMENT01;
UINT val2 = (rand()%6) + IDS_ADJECTIVE01;
CString strStatement, strAdjective;
if(!strStatement.LoadString(val1))
return strResult;
if(!strAdjective.LoadString(val2))
return strResult;
wsprintf(strResult.GetBuffer(strStatement.GetLength()+strAdjective.GetLength()),
(LPCTSTR)strStatement,(LPCTSTR)strAdjective);
strResult.ReleaseBuffer();
return strResult;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -