⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readme.txt

📁 一个wince的TEXT阅读器源代码
💻 TXT
字号:
// MainFrm.cpp : implementation of the CMainFrame class
//

#include "stdafx.h"
#include "ReadTxt.h"
#include <Afxdlgs.h>
#include "MainFrm.h"


char buf[512];

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

// Array tbSTDButton contains relevant buttons of bitmap IDB_STD_SMALL_COLOR
static TBBUTTON tbButtons[] = {
	{0, 0,				TBSTATE_ENABLED, TBSTYLE_SEP,    0, 0, 0,  0},  
	{0,	ID_FILE_NEW,	TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, -1},
	{1, ID_FILE_OPEN,	TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, -1},
	{2, ID_FILE_SAVE,	TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, -1},
	{0, 0,				TBSTATE_ENABLED, TBSTYLE_SEP,    0, 0, 0, -1},
	{3, ID_EDIT_CUT,	TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, -1},
	{4, ID_EDIT_COPY,	TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, -1},
	{5, ID_EDIT_PASTE,	TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, -1},
	{0, 0,				TBSTATE_ENABLED, TBSTYLE_SEP,    0, 0, 0, -1},
	{6, ID_APP_ABOUT,	TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0, 0, -1},
	{0, 0,				TBSTATE_ENABLED, TBSTYLE_SEP,    0, 0, 0,  0}
};
const int nNumButtons = sizeof(tbButtons)/sizeof(TBBUTTON);
const int nNumImages = 7;
const DWORD dwAdornmentFlags = 0; // exit button

/////////////////////////////////////////////////////////////////////////////
// CMainFrame

IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)

BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
	//{{AFX_MSG_MAP(CMainFrame)
	ON_WM_CREATE()
	ON_COMMAND(ID_FILE_OPEN, OnFileOpen)
	ON_COMMAND(ID_FILE_SAVE, OnFileSave)
	ON_COMMAND(ID_FILE_NEW, OnFileNew)
	ON_COMMAND(ID_EDIT_UNDO, OnEditUndo)
	ON_COMMAND(ID_EDIT_CUT, OnEditCut)
	ON_COMMAND(ID_EDIT_COPY, OnEditCopy)
	ON_COMMAND(ID_EDIT_PASTE, OnEditPaste)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMainFrame construction/destruction

CMainFrame::CMainFrame()
{
	// TODO: add member initialization code here
	
}

CMainFrame::~CMainFrame()
{
}

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
	if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	// Add the buttons and adornments to the CommandBar.
	if (!InsertButtons(tbButtons, nNumButtons, IDR_MAINFRAME, nNumImages) ||
	    !AddAdornments(dwAdornmentFlags))
	{
		TRACE0("Failed to add toolbar buttons\n");
		return -1;
	}
 	RECT rc={2,26,238,293};
	EditList.Create(ES_LEFT|ES_AUTOVSCROLL|ES_MULTILINE| WS_BORDER,rc,this,IDC_VIEW_EDIT);
	EditList.SetFocus();
	EditList.ShowWindow(true);

	return 0;
}

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
	if( !CFrameWnd::PreCreateWindow(cs) )
		return FALSE;
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs


	return TRUE;
}


/////////////////////////////////////////////////////////////////////////////
// CMainFrame diagnostics

#ifdef _DEBUG
void CMainFrame::AssertValid() const
{
	CFrameWnd::AssertValid();
}

void CMainFrame::Dump(CDumpContext& dc) const
{
	CFrameWnd::Dump(dc);
}

#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CMainFrame message handlers

void CMainFrame::OnFileOpen() 
{
	CString str;	
	  //CFileDialog fileDlg(TRUE, _T("txt"), _T("*.txt"),OFN_FILEMUSTEXIST, szFilters, this);
	  //if(IDOK==fileDlg.DoModal())
	  //{
		// str=fileDlg.GetPathName();
		 	TCHAR szFilters[]=L"文件类型 (*.txt)|*.txt|All Files (*.*)|*.*||";
	  CFileDialog fileDlg(FALSE, _T("txt"), _T("*.txt"),OFN_PATHMUSTEXIST, szFilters, this);
	  if(IDOK==fileDlg.DoModal())
	  {
		 str=fileDlg.GetPathName();
		CFile mFile;
		if(mFile.Open(str,CFile::modeRead)==0)
			return;	
		CArchive ar(&mFile,CArchive::load);
		ar.Read(buf,256);
		CString str=buf;
		SetDlgItemText(IDC_VIEW_EDIT,str);
		EditList.SetFocus();
		EditList.Invalidate(true);
		ar.Close();
		mFile.Close(); 
	}
	
}

void CMainFrame::OnFileSave() 
{
	CString str;
	char buf[256]={0};
	TCHAR szFilters[]=L"文件类型 (*.txt)|*.txt|All Files (*.*)|*.*||";
	  CFileDialog fileDlg(FALSE, _T("txt"), _T("*.txt"),OFN_PATHMUSTEXIST, szFilters, this);
	  if(IDOK==fileDlg.DoModal())
	  {
		 str=fileDlg.GetPathName();
		 WIN32_FIND_DATA FileExitData;
		HANDLE file=FindFirstFile(str,&FileExitData);
		if(file==INVALID_HANDLE_VALUE)	
			CreateFile(str,GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ,NULL,CREATE_NEW,FILE_ATTRIBUTE_NORMAL,NULL);
		else
			CloseHandle(file);
		
		HANDLE mFile;
		mFile=CreateFile(str,GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
		CString datastr;		
	 	GetDlgItemText(IDC_VIEW_EDIT,datastr);
		

		WideCharToMultiByte(
		  CP_ACP, 
		  WC_COMPOSITECHECK, 
		  datastr, 
		  wcslen(datastr), 
		  buf, 
		  128, 
		  NULL, 
		  NULL
		);
		DWORD cbyte;
		int len =strlen(buf);
		WriteFile(mFile,buf,len,&cbyte,NULL);
		CloseHandle(mFile);
	}
}

void CMainFrame::OnFileNew() 
{
		CString str=L"";
		SetDlgItemText(IDC_VIEW_EDIT,str);
}

void CMainFrame::OnEditUndo() 
{
EditList.Undo();
	
}

void CMainFrame::OnEditCut() 
{
EditList.Cut();
	
}

void CMainFrame::OnEditCopy() 
{
EditList.Copy();
	
}

void CMainFrame::OnEditPaste() 
{
EditList.Paste();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -