📄 protfilelistctrl.cpp
字号:
// ProtFileListCtrl.cpp : implementation file
//
#include "stdafx.h"
#include "resource.h"
#include "FileGuard.h"
#include "FGDevice.h"
#include "FileGuardApp.h"
#include "ProtFileListCtrl.h"
#include "ProtFilePropDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CProtFileListCtrl
CProtFileListCtrl::CProtFileListCtrl()
{
}
CProtFileListCtrl::~CProtFileListCtrl()
{
}
BEGIN_MESSAGE_MAP(CProtFileListCtrl, CListCtrl)
//{{AFX_MSG_MAP(CProtFileListCtrl)
ON_NOTIFY_REFLECT(NM_DBLCLK, OnDblclickProtectedFileList)
ON_NOTIFY_REFLECT(NM_RCLICK, OnRClickProtectedFileList)
ON_NOTIFY_REFLECT(LVN_KEYDOWN, OnKeyDown)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CProtFileListCtrl message handlers
void CProtFileListCtrl::DisplayItem()
{
DeleteAllItems();
int i=0;
PROTECTED_FILE *pProtFile=protFileList.FindFirst();
if(!pProtFile)
return;
InsertItem(i, pProtFile->PF_pPath);
SetItemText(i, 1, GetProtectionTypeText(pProtFile->PF_type));
while( (pProtFile=protFileList.FindNext())!=NULL )
{
i++;
InsertItem(i, pProtFile->PF_pPath);
SetItemText(i, 1, GetProtectionTypeText(pProtFile->PF_type));
}
}
void CProtFileListCtrl::OnDblclickProtectedFileList(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
*pResult = 0;
NMITEMACTIVATE *pNMItem=(NMITEMACTIVATE *)pNMHDR;
if(pNMItem->iItem==-1)
return;
OnProperty(pNMItem->iItem);
}
void CProtFileListCtrl::OnRClickProtectedFileList(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
*pResult = 0;
NMITEMACTIVATE *pNMItem=(NMITEMACTIVATE *)pNMHDR;
//create menu and handle message.
POINT point(pNMItem->ptAction);
CMenu menu;
ClientToScreen(&point);
menu.LoadMenu(IDR_LIST_MENU);
if(pNMItem->iItem==-1)
{
menu.EnableMenuItem(ID_DELETE, MF_GRAYED);
menu.EnableMenuItem(ID_PROPERTY, MF_GRAYED);
}
ASSERT(menu.GetSubMenu(0));
switch(menu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON
| TPM_NONOTIFY | TPM_RETURNCMD, point.x, point.y, this))
{
case ID_NEW:
OnNew();
break;
case ID_DELETE:
OnDelete(pNMItem->iItem);
break;
case ID_PROPERTY:
OnProperty(pNMItem->iItem);
break;
}
}
void CProtFileListCtrl::OnNew()
{
ShowFileProperty(NULL);
}
void CProtFileListCtrl::OnDelete(int iItem)
{
if(iItem==-1)
return;
CString strPath=GetItemText(iItem, 0);
protFileList.Remove(strPath);
::SendNotifyMessage(::GetParent(m_hWnd), WM_SHOW_DATA, 3, 0);
}
void CProtFileListCtrl::OnProperty(int iItem)
{
if(iItem==-1)
return;
CString strPath=GetItemText(iItem, 0);
ShowFileProperty(strPath);
}
void CProtFileListCtrl::OnKeyDown(NMHDR* pNMHDR, LRESULT* pResult)
{
LV_KEYDOWN* pLVKeyDown= (LV_KEYDOWN*)pNMHDR;
if(pLVKeyDown->wVKey==VK_DELETE)
OnDelete(GetNextItem(-1, LVNI_SELECTED));
*pResult = 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -