📄 selectdatasdlg.cpp
字号:
// SelectDatasDlg.cpp: implementation of the CSelectDatasDlg class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "SelectDatasDlg.h"
#include "ProgressDlg.h"
#include "Public.h"
#include "Registry_DB.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CSelectDatasDlg::CSelectDatasDlg()
{
m_StorageType.Empty();
}
CSelectDatasDlg::~CSelectDatasDlg()
{
}
LRESULT CSelectDatasDlg::OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
m_hMenuBar = CreateMenuBarWnd(m_hWnd,IDR_ACTIONMENU);
if(m_hMenuBar == NULL)
return -1;
DWORD tagID[]={CONTACT_TXT,CALENDAR_TXT,TASK_TXT,INBOX_TXT,CHANNELS_TXT,NOTES_TXT,VOICERECORDER_TXT,USERAPP_TXT};
CString tag[8];
CString temp;
for(int i = 0; i < 8 ; i++)
{
temp.LoadString(tagID[i]);
tag[i] = temp;
}
// LPWSTR DBName[] = {CONTACTDB,CALENDARDB,TASKDB,INBOXDB};
int TextTotal = 8;
HWND hWnd = GetDlgItem(IDC_LIST1);
m_ListCtrl.SubclassWindow(hWnd);
DWORD dwStyle = m_ListCtrl.GetExtendedListViewStyle();
dwStyle |= LVS_EX_CHECKBOXES|LVS_EX_FULLROWSELECT ;
m_ListCtrl.SetExtendedListViewStyle(dwStyle);
CRect rect;
m_ListCtrl.GetClientRect(&rect);
m_ListCtrl.InsertColumn(0,L"Item No",LVCFMT_LEFT,rect.Width()/5,-1);
m_ListCtrl.InsertColumn(1,L"Item",LVCFMT_LEFT,rect.Width()*4/5 , -1);
CString FlashStr;
FlashStr.LoadString(FLASHROM_TXT);
if (m_StorageType.Find(FlashStr) != -1)
TextTotal = 4;
CString Num;
for (i = 0; i < TextTotal ; i++)
{
Num.Format(L"%d",i+1);
m_ListCtrl.InsertItem(i,Num);
m_ListCtrl.SetCheckState(i,TRUE);
m_ListCtrl.SetItemText(i,1,tag[i]);
}
m_ListCtrl.SelectItem(0);
return 0;
}
LRESULT CSelectDatasDlg::OnCancel(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)
{
EndDialog(IDCANCEL);
return 0;
}
LRESULT CSelectDatasDlg::OnActivate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
// TODO : Add Code for message handler. Call DefWindowProc if necessary.
m_ListCtrl.SetFocus();
return 0;
}
LRESULT CSelectDatasDlg::OnNext(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)
{
BackupItem item;
BOOL TotalFlag = TRUE;
LPWSTR DB_ZIP[] = {CONTACTDB,CALENDARDB,TASKDB,INBOXDB,CHANNELDIR,NOTEDIR,VOICEDIR,USERAPPDIR};
DWORD tagID[] = {CONTACT_TXT,CALENDAR_TXT,TASK_TXT,INBOX_TXT,CHANNELS_TXT,NOTES_TXT,VOICERECORDER_TXT,USERAPP_TXT};
CString tag[8];
CString temp;
for(int j = 0 ;j < 8 ; j++)
{
temp.LoadString(tagID[j]);
tag[j] = temp;
}
int i = 0;
CString FlashStr;
FlashStr.LoadString(FLASHROM_TXT);
if (m_StorageType.Find(FlashStr) != -1)
TotalFlag = FALSE;
else
{
for (i = 0 ;i < m_ListCtrl.GetItemCount() ; i++)
{
if (!m_ListCtrl.GetCheckState(i))
TotalFlag = FALSE;
}
}
CProgressDlg dlg;
dlg.m_StorageType = m_StorageType;
dlg.m_TotalFlag = TotalFlag;
if (TotalFlag && (m_StorageType.Compare(FlashStr) != 0 ))
{
//if select all data
CRegistry_DB db(m_StorageType);
if (db.GetTotalBackupDB())
{
// add all databases into list
POSITION pos;
CString PMailDB;
for (i = 0; i < db.m_DBItemList.GetCount(); i++)
{
pos = db.m_DBItemList.FindIndex(i);
ZeroMemory(&item,sizeof(item));
wcscpy(item.DBNAME_ZIPDIR,db.m_DBItemList.GetAt(pos).ItemName);
PMailDB.Format(item.DBNAME_ZIPDIR);
if (wcscmp(item.DBNAME_ZIPDIR,DB_ZIP[3]) == 0)
{
wcscpy(item.ItemName,tag[3]);
item.IsMail = TRUE;
}
else
{
if ((PMailDB.Find(L"pmail") != -1) || (PMailDB.Find(L"fldr") != -1))
continue;
for(int j = 0; j < 3; j++)
{
if (wcscmp(item.DBNAME_ZIPDIR,DB_ZIP[j]) == 0)
{
wcscpy(item.ItemName,tag[j]);
break;
}
}
item.IsDB = TRUE;
}
dlg.m_ItemList.AddTail(item);
}
}
// add all type of files into list
for (i = 4; i < 8;i++)
{
ZeroMemory(&item,sizeof(item));
wcscpy(item.ItemName,tag[i]);
wcscpy(item.DBNAME_ZIPDIR,DB_ZIP[i]);
dlg.m_ItemList.AddTail(item);
}
if (dlg.DoModal() == IDOK)
EndDialog(IDOK);
return 0;
}
// if not select all data
BSTR itemStr;
for (i = 0 ;i < m_ListCtrl.GetItemCount(); i++)
{
if (m_ListCtrl.GetCheckState(i))
{
ZeroMemory(&item,sizeof(item));
itemStr = NULL;
m_ListCtrl.GetItemText(i,1,itemStr);
for ( int j = 0 ;j < 8 ; j++)
{
if (wcscmp(itemStr,tag[j]) == 0)
{
wcscpy(item.ItemName,tag[j]);
wcscpy(item.DBNAME_ZIPDIR,DB_ZIP[j]);
if (j < 3)
item.IsDB = TRUE;
else
if (j == 3)
item.IsMail = TRUE;
break;
}
}
dlg.m_ItemList.AddTail(item);
}
}
if (dlg.DoModal() == IDOK)
EndDialog(IDOK);
return 0;
}
LRESULT CSelectDatasDlg::OnKeyDown(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
// TODO : Add Code for message handler. Call DefWindowProc if necessary.
return 0;
}
LRESULT CSelectDatasDlg::OnPaint(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
// TODO : Add Code for message handler. Call DefWindowProc if necessary.
CPaintDC dc(m_hWnd);
CPen pen;
pen.CreatePen(PS_SOLID,2,RGB(0,0,0));
::SelectObject(dc.m_hDC,pen);
CRect rect;
m_ListCtrl.GetWindowRect(&rect);
rect.top -= 21;
rect.bottom -= 21;
rect.InflateRect(1,1,1,1);
dc.Draw3dRect(rect,RGB(0,0,0),GetSysColor(COLOR_3DFACE));//RGB(210,210,210));
rect.InflateRect(1,1,1,1);
dc.Draw3dRect(rect,RGB(70,70,70),RGB(200,200,200));
rect.InflateRect(2,2,2,2);
dc.Draw3dRect(rect,RGB(0,0,0),RGB(0,0,0));
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -