// 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();
}
- 1
- 2
前往页