📄 rtext.cpp
字号:
// RText.cpp : implementation file
//
#include "stdafx.h"
#include "WinCEJob.h"
#include "RText.h"
#include "searcht.h"
#include "number.h"
#include "percent.h"
#include "settime.h"
#include "cage.h"
#include "jump.h"
#include "addmark.h"
#include "FileLoader.h"
#include "showmark.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CRText dialog
CRText::CRText(CWnd* pParent /*=NULL*/)
: CDialog(CRText::IDD, pParent)
{
//{{AFX_DATA_INIT(CRText)
m_text = _T("");
//}}AFX_DATA_INIT
}
void CRText::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CRText)
DDX_Text(pDX, IDC_EDIT1, m_text);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CRText, CDialog)
//{{AFX_MSG_MAP(CRText)
ON_COMMAND(IDD_CLOSE, OnClose)
ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
ON_COMMAND(IDD_FINDS, OnFinds)
ON_COMMAND(ID_NEXTPAGE, OnNextpage)
ON_COMMAND(ID_Prepage, OnPrepage)
ON_COMMAND(ID_BYPAGE, OnBypage)
ON_COMMAND(ID_BYPERCENT, OnBypercent)
ON_COMMAND(ID_ENDPAGE, OnEndpage)
ON_COMMAND(ID_FIRSTPAGE, OnFirstpage)
ON_COMMAND(ID_MENUITEM32799, OnMenuitem32799)
ON_COMMAND(ID_LOOKMARK, OnLookmark)
ON_COMMAND(ID_ADDMARK, OnAddmark)
ON_COMMAND(ID_EDITMARK, OnEditmark)
ON_COMMAND(ID_JUMPTOMARK, OnJumptomark)
ON_COMMAND(ID_MARK, OnMark)
ON_COMMAND(IDD_CLEARMARK, OnClearmark)
ON_COMMAND(IDD_BACK, OnBack)
ON_COMMAND(IDD_FORWARD, OnForward)
ON_COMMAND(ID_PAGEONTIME, OnPageontime)
ON_COMMAND(ID_FILEINFO, OnFileinfo)
ON_WM_TIMER()
ON_COMMAND(IDD_CATEGORIES, OnCategories)
ON_COMMAND(ID_XUANXIANG, OnXuanxiang)
ON_COMMAND(ID_SETREAD, OnSetread)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CRText message handlers
void CRText::OnOK()
{
CDialog::OnOK();
}
//****************************************************************
//函数名: OnInitDialog
//参数:
//功能: 初始化EDIT框的内容
//作者: 杨淑华
//实现日期: 05-3-14
/****************************************************************/
BOOL CRText::OnInitDialog()
{
CDialog::OnInitDialog();
m_text = m_filetext;
if(m_openfile.Right(3) ==L"PBD" || m_openfile.Right(3) ==L"pbd")
{
m_fileloader = new FileLoader(this->m_openfile);
// this->m_fileloader->tot_mark=0;
}
// CString str = L"统计,你好啊asdyangshuhua sd;lfjasld;fjasldkjfaksdjgllllllllllllllddddddddddddddddddddddddddddkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeffffffffffffffffffffffffffffffffffffffffffffffffffffffiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajjjjjjjjjjjjjjjjjjjjjjjjjjjjjjbbbbbbbbbbbbbbbbbbbbbbbbb";
// m_text = str+str+str;
// m_text += m_text+m_text;
// m_text.Format(L"%d", str.GetLength());
SHMENUBARINFO mbi;
ZeroMemory(&mbi, sizeof(SHMENUBARINFO));
mbi.cbSize = sizeof(SHMENUBARINFO);
mbi.hwndParent = this->m_hWnd;
mbi.nToolBarId = IDR_MENUBAR3;
mbi.hInstRes = AfxGetInstanceHandle();
if(!SHCreateMenuBar(&mbi))
{
// Couldn't create the menu bar. Fail creation of the window.
MessageBox(L"Couldn't create the menu bar");
}
UpdateData(false);
this->m_edit = (CEdit*) this->GetDlgItem(IDC_EDIT1);
m_iCount = 0;
/*
HWND hand;
this->GetDlgItem(IDC_EDIT1, &hand);
HDC hdc = ::GetWindowDC(hand);
if(hdc)
{
MessageBox(L"success!");
}
CDC cdc;
cdc.Attach(hdc);
CPen myPen1(PS_SOLID, 2, RGB(0,255,0));
CPen * oldpen = (CPen*)cdc.SelectObject(myPen1);
RECT rt;
rt.bottom = 30;
rt.left = 0;
rt.right = 40;
rt.top = 0;
cdc.Ellipse(&rt);
cdc.SelectObject(oldpen);
LPVOID lpMsgBuf;
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
GetLastError(),
0, // Default language
(LPTSTR) &lpMsgBuf,
0,
NULL
);
// Process any inserts in lpMsgBuf.
// ...
// Display the string.
::MessageBox( NULL, (LPCTSTR)lpMsgBuf, L"Error", MB_OK | MB_ICONINFORMATION );
// Free the buffer.
LocalFree( lpMsgBuf );
*/
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CRText::OnClose()
{
if(m_openfile.Right(3) ==L"PBD" || m_openfile.Right(3) ==L"pbd")
{
if(m_fileloader->ModifyInfo())
{
AfxMessageBox(L"aaa");
}
else
{
AfxMessageBox(L"bbb");
}
// this->m_fileloader->tot_mark=0;
}
CDialog::OnOK();
}
void CRText::OnButton1()
{
HWND hand;
this->GetDlgItem(IDC_EDIT1, &hand);
HDC hdc = ::GetWindowDC(hand);
if(!hdc)
{
MessageBox(L"failed!");
}
CDC cdc;
cdc.Attach(hdc);
CPen myPen1(PS_SOLID, 2, RGB(0,255,0));
CPen * oldpen = (CPen*)cdc.SelectObject(myPen1);
RECT rt;
rt.bottom = 30;
rt.left = 0;
rt.right = 40;
rt.top = 0;
cdc.Ellipse(&rt);
rt.right = 200;
rt.bottom = 200;
// cdc.DrawText(L"asldkfjasl;kdjfa;lksdjfa;lkdhga;lskdjfalksdjfaldfksad", &rt, DT_NOCLIP);
cdc.SelectObject(oldpen);
cdc.Detach();
delete [] cdc;
}
extern CString searchcontent;
void CRText::OnFinds()
{
CSearchT cs;
cs.DoModal();
Search(searchcontent);
}
void CRText::OnNextpage()
{
m_edit->LineScroll(17);
}
void CRText::OnPrepage()
{
m_edit->LineScroll(-17);
}
extern int bypage;
void CRText::OnBypage()
{
CNumber cn;
cn.DoModal();
// int a,b;
// m_edit->GetScrollRange(SB_VERT, &a, &b);
m_edit->LineScroll(-1000);
m_edit->LineScroll(bypage*17);
}
extern int percent;
void CRText::OnBypercent()
{
CPercent cp;
cp.DoModal();
int a,b;
m_edit->GetScrollRange(SB_VERT, &a, &b);
int i = percent*(b-a)/100;
m_edit->LineScroll(i);
}
void CRText::OnEndpage()
{
int a,b;
m_edit->GetScrollRange(SB_VERT, &a, &b);
m_edit->LineScroll(b-a);
}
void CRText::OnFirstpage()
{
int a,b;
m_edit->GetScrollRange(SB_VERT, &a, &b);
m_edit->LineScroll(a-b);
}
extern int m_currentsel;
void CRText::OnMenuitem32799()
{
// TODO: Add your command handler code here
}
void CRText::OnLookmark()
{
OnEditmark();
}
extern CString markname;
void CRText::OnAddmark()
{
CAddmark ca;
ca.DoModal();
m_fileloader->SetBookmark(m_edit->GetFirstVisibleLine(), markname);
// this->m_fileloader->tot_mark++;
}
extern int jumpmark;
void CRText::OnEditmark()
{
CShowMark cs;
cs.m_totalmark = this->m_fileloader->tot_mark;
for(int i=0; i<this->m_fileloader->tot_mark; i++)
{
cs.marks[i] = this->m_fileloader->mark_line[i];
cs.markname[i] = this->m_fileloader->mark_name[i];
}
cs.DoModal();
m_edit->LineScroll(-1000);
m_edit->LineScroll(this->m_fileloader->mark_line[jumpmark]);
}
void CRText::OnJumptomark()
{
CJump cj;
cj.m_number = this->m_chapternum;
for(int i=0; i<m_chapternum; i++)
{
cj.name[i] = this->m_fileloader->m_chapter[i];
}
cj.DoModal();
m_edit->LineScroll(-1000);
m_edit->LineScroll(this->m_chapterline[m_currentsel]);
}
void CRText::OnMark()
{
// TODO: Add your command handler code here
}
void CRText::OnClearmark()
{
// TODO: Add your command handler code here
}
void CRText::OnBack()
{
}
void CRText::OnForward()
{
// TODO: Add your command handler code here
}
extern int timeset;
void CRText::OnPageontime()
{
int a,b;
m_edit->GetScrollRange(SB_VERT, &a, &b);
m_total = b-a;
CSetTime cs;
cs.DoModal();
SetTimer(1, timeset*1000, NULL);
}
void CRText::OnFileinfo()
{
// CSearchT cs;
// cs.DoModal();
// Search(searchcontent);
}
void CRText::OnTimer(UINT nIDEvent)
{
if(m_iCount*17 < m_total)
{
m_iCount++;
m_edit->LineScroll(17);
}
else
{
KillTimer(0);
}
CDialog::OnTimer(nIDEvent);
}
void CRText::OnCategories()
{
CCage cc;
cc.DoModal();
}
CRText::~CRText()
{
if(m_openfile.Right(3) ==L"PBD" || m_openfile.Right(3) ==L"pbd")
{
if(m_fileloader->ModifyInfo())
{
// AfxMessageBox(L"aaa");
}
else
{
// AfxMessageBox(L"bbb");
}
}
}
int CRText::Search(CString ss)
{
int pos;
pos = 0;
m_text.MakeLower();
ss.MakeLower();
do
{
pos = m_text.Find(ss,pos);
if(pos == -1)
{
AfxMessageBox(L"找不到相应的字符串");
return 0;
}
m_edit->SetSel(pos,pos+ss.GetLength()*2,false);
m_edit->LineScroll(2);
pos += ss.GetLength();
if(AfxMessageBox(L"继续查找?",MB_OKCANCEL) == IDCANCEL)
{
pos = -1;
}
}while(pos!=-1);
return 1;
}
int CRText::GetLine(int pos,int l,int e)
{
/* int i;
for( ;l<e ;l++ )
{
if(m_edit->GetLine(l)<pos+1)
if(m_edit->GetLine(l+1)>pos)
return l;
}
return e;*/
return 0;
}
void CRText::OnXuanxiang()
{
// TODO: Add your command handler code here
}
void CRText::OnSetread()
{
// TODO: Add your command handler code here
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -