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

📄 mainfrm.cpp

📁 SyncML 协议的同步实现的数据备份,是基于wince平台,,也可很容易移植到其它平台
💻 CPP
字号:
// MainFrm.cpp : implementation of the CMainFrame class
//

#include "stdafx.h"
#include "App_Sync728.h"
#include "MainFrm.h"

//#include "..\common\common.h"
#pragma comment  (lib, "OSInterfaceDll.lib")
#include "osinterfacedll.h"

#define MAX_PATH_LEN	256

BOOL bAutoRemind;
BOOL bReplace;
BOOL bPassword;
wchar_t wszLastZip[MAX_PATH_LEN];
wchar_t wszLastXDB[MAX_PATH_LEN];

#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_SD_ABOUT, OnSdAbout)
	ON_UPDATE_COMMAND_UI(ID_AUTO_REMIND, OnUpdateAutoRemind)
	ON_COMMAND(ID_AUTO_REMIND, OnAutoRemind)
	ON_COMMAND(ID_RECOVER_SET, OnRecoverSet)
	ON_COMMAND(ID_NEED_PASSWORD, OnNeedPassword)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

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

CMainFrame::CMainFrame()
{
	// TODO: add member initialization code here
	m_bAutoRemind = FALSE;
}

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))
	if (!AddAdornments(dwAdornmentFlags))
	{
		TRACE0("Failed to add toolbar buttons\n");
		return -1;
	}

	CFile file;
	if (file.Open(TEXT("\\DbData\\SYSCONFIG\\SDSync.cfg"), CFile::modeRead))
	{
		file.Read(&bAutoRemind, sizeof (bAutoRemind));
		file.Read(&bReplace, sizeof (bReplace));
		file.Read(&bPassword, sizeof (bReplace));
		file.Read(&wszLastZip, MAX_PATH_LEN);
		file.Read(&wszLastXDB, MAX_PATH_LEN);
		file.Close();
	}
	else
	{
		bAutoRemind = TRUE;
		bReplace = TRUE;
		bPassword = TRUE;
		file.Open(TEXT("\\DbData\\SYSCONFIG\\SDSync.cfg"), CFile::modeCreate | CFile::modeWrite);
		file.Write(&bAutoRemind, sizeof (bAutoRemind));
		file.Write(&bReplace, sizeof (bReplace));
		file.Write(&bPassword, sizeof (bPassword));	
		file.Write(&wszLastZip, MAX_PATH_LEN);
		file.Write(&wszLastXDB, MAX_PATH_LEN);
		
		file.Close();
	}

	CMenu *pMenu = NULL;
	pMenu = GetMenu()->GetSubMenu(1);	
	UINT status = bAutoRemind? MF_CHECKED:MF_UNCHECKED;
	pMenu->CheckMenuItem(0, MF_BYPOSITION | status);

	status = bReplace? MF_CHECKED:MF_UNCHECKED;
	pMenu->CheckMenuItem(1, MF_BYPOSITION | status);

	status = bPassword? MF_CHECKED:MF_UNCHECKED;
	pMenu->CheckMenuItem(2, MF_BYPOSITION | status);

    TCHAR SZ1[80];
    LoadString(AfxGetInstanceHandle(), MESSAGE_MAIN_NAME, SZ1, sizeof(SZ1)/sizeof(TCHAR));   
	SetWindowText(CString(SZ1));

	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::OnSdAbout()
{
	SYSTEMTIME st;
	memset(&st, 0, sizeof (st));
	GetSystemTime(&st);
	char szVer[128];
	sprintf(szVer, "v%4d%2.2d%2.2d", 2006, 2, 20);
		
	TCHAR SZ1[80];
    LoadString(AfxGetInstanceHandle(), MESSAGE_MAIN_ABOUT, SZ1, sizeof(SZ1)/sizeof(TCHAR));
    
	ShowAboutDialog(NULL, THCAR2char(SZ1) , szVer, "", "");

}


char* CMainFrame::THCAR2char(TCHAR *tchStr)
{
   int iLen = 2*wcslen(tchStr);//CString,TCHAR汉字算一个字符,因此不用普通计算长度 
   char* chRtn = new char[iLen+1]; 
   wcstombs(chRtn,tchStr,iLen+1);//转换成功返回为非负值 
   return chRtn; 
}


void CMainFrame::OnUpdateAutoRemind(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
}

void CMainFrame::OnAutoRemind() 
{
	// TODO: Add your command handler code here
	CMenu *pMenu = NULL;
	pMenu = GetMenu()->GetSubMenu(1);	
	UINT status = pMenu->GetMenuState(0, MF_BYPOSITION)==MF_CHECKED?MF_UNCHECKED:MF_CHECKED;
	pMenu->CheckMenuItem(0, MF_BYPOSITION | status);
	bAutoRemind = status == MF_CHECKED;

	CFile file;
	file.Open(TEXT("\\DbData\\SYSCONFIG\\SDSync.cfg"), CFile::modeCreate | CFile::modeWrite);
	file.Write(&bAutoRemind, sizeof (bAutoRemind));
	file.Write(&bReplace, sizeof (bReplace));
	file.Write(&bPassword, sizeof (bPassword));
	file.Write(&wszLastZip, MAX_PATH_LEN);
	file.Write(&wszLastXDB, MAX_PATH_LEN);
	file.Close();
}


void CMainFrame::OnRecoverSet() 
{
	// TODO: Add your command handler code here
	CMenu *pMenu = NULL;
	pMenu = GetMenu()->GetSubMenu(1);	
	UINT status = pMenu->GetMenuState(1, MF_BYPOSITION)==MF_CHECKED?MF_UNCHECKED:MF_CHECKED;
	pMenu->CheckMenuItem(1, MF_BYPOSITION | status);

	bReplace = status == MF_CHECKED;

	CFile file;
	file.Open(TEXT("\\DbData\\SYSCONFIG\\SDSync.cfg"), CFile::modeCreate | CFile::modeWrite);
	file.Write(&bAutoRemind, sizeof (bAutoRemind));
	file.Write(&bReplace, sizeof (bReplace));
	file.Write(&bPassword, sizeof (bPassword));
	file.Write(&wszLastZip, MAX_PATH_LEN);
	file.Write(&wszLastXDB, MAX_PATH_LEN);
	file.Close();
}

void CMainFrame::OnNeedPassword() 
{
	// TODO: Add your command handler code here
	CMenu *pMenu = NULL;
	pMenu = GetMenu()->GetSubMenu(1);	
	UINT status = pMenu->GetMenuState(2, MF_BYPOSITION)==MF_CHECKED?MF_UNCHECKED:MF_CHECKED;
	pMenu->CheckMenuItem(2, MF_BYPOSITION | status);

	bPassword = status == MF_CHECKED;

	CFile file;
	file.Open(TEXT("\\DbData\\SYSCONFIG\\SDSync.cfg"), CFile::modeCreate | CFile::modeWrite);
	file.Write(&bAutoRemind, sizeof (bAutoRemind));
	file.Write(&bReplace, sizeof (bReplace));
	file.Write(&bPassword, sizeof (bPassword));
	file.Write(&wszLastZip, MAX_PATH_LEN);
	file.Write(&wszLastXDB, MAX_PATH_LEN);
	file.Close();
}

⌨️ 快捷键说明

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