📄 ringview.cpp
字号:
CDocument * pDoc = GetDocument();
ASSERT_VALID( pDoc );
pDoc->UpdateAllViews(this, WM_CHANGE_SEL_ITEM, (CObject*)pNode);
}
else
{
AfxMessageBox(_T("Replace the file content fail!"));
}
}
void CRingView::OnRingProperty()
{
// TODO: Add your command handler code here
CTreeCtrl &tc = GetTreeCtrl();
HTREEITEM hItem = tc.GetSelectedItem();
_ASSERTE( hItem != NULL );
CDirFileNode * pNode = (CDirFileNode *)tc.GetItemData(hItem);
CItemDlg dlg;
dlg.m_strContent.Format( _T("ID: %s\r\nName: %s\r\nSize: %d (Bytes)"),
pNode->szID, pNode->szName, pNode->nWidth);
dlg.m_strComment = pNode->szComment;
if( dlg.DoModal() == IDOK )
{
_tcscpy(pNode->szComment, dlg.m_strComment);
}
}
void CRingView::OnRButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CMenu menu;
VERIFY( menu.LoadMenu(IDM_POPUP_RING) );
CMenu * pMenu = menu.GetSubMenu(0);
CTreeCtrl &tc = GetTreeCtrl();
UINT uFlag = 0;
HTREEITEM hItem = tc.HitTest( point, &uFlag );
if( !(uFlag & TVHT_ONITEM) )
hItem = NULL;
tc.SelectItem(hItem);
if( PreTrackPopupMenu( pMenu, hItem ) )
{
ClientToScreen(&point);
pMenu->TrackPopupMenu(TPM_LEFTALIGN, point.x, point.y, this);
}
//CTreeViewEx::OnRButtonDown(nFlags, point);
}
void CRingView::OnUpdateRingAddDir(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
CTreeCtrl &tc = GetTreeCtrl();
BOOL bEnable = TRUE;
HTREEITEM hItem = tc.GetSelectedItem();
if( hItem != NULL )
{
CDirFileNode * pNode = (CDirFileNode *)tc.GetItemData(hItem);
if( !m_pInfo->IsDirNode(pNode) )
bEnable = FALSE;
}
pCmdUI->Enable( bEnable );
}
void CRingView::OnUpdateRingAddFile(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
CTreeCtrl &tc = GetTreeCtrl();
BOOL bEnable = TRUE;
HTREEITEM hItem = tc.GetSelectedItem();
if( hItem != NULL )
{
CDirFileNode * pNode = (CDirFileNode *)tc.GetItemData(hItem);
if( !m_pInfo->IsDirNode(pNode) )
bEnable = FALSE;
}
pCmdUI->Enable( bEnable );
}
void CRingView::OnUpdateRingProperty(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
CTreeCtrl &tc = GetTreeCtrl();
BOOL bEnable = FALSE;
HTREEITEM hItem = tc.GetSelectedItem();
if( hItem != NULL )
{
CDirFileNode * pNode = (CDirFileNode *)tc.GetItemData(hItem);
if( !m_pInfo->IsDirNode(pNode) )
bEnable = TRUE;
}
pCmdUI->Enable( bEnable );
}
void CRingView::OnUpdateRingRemoveDir(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
CTreeCtrl &tc = GetTreeCtrl();
BOOL bEnable = FALSE;
HTREEITEM hItem = tc.GetSelectedItem();
if( hItem != NULL )
{
CDirFileNode * pNode = (CDirFileNode *)tc.GetItemData(hItem);
if( m_pInfo->IsDirNode(pNode) )
bEnable = TRUE;
}
pCmdUI->Enable( bEnable );
}
void CRingView::OnUpdateRingRemoveFile(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
CTreeCtrl &tc = GetTreeCtrl();
BOOL bEnable = FALSE;
HTREEITEM hItem = tc.GetSelectedItem();
if( hItem != NULL )
{
CDirFileNode * pNode = (CDirFileNode *)tc.GetItemData(hItem);
if( !m_pInfo->IsDirNode(pNode) )
bEnable = TRUE;
}
pCmdUI->Enable( bEnable );
}
void CRingView::OnUpdateRingReplaceDir(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
CTreeCtrl &tc = GetTreeCtrl();
BOOL bEnable = FALSE;
HTREEITEM hItem = tc.GetSelectedItem();
if( hItem != NULL )
{
CDirFileNode * pNode = (CDirFileNode *)tc.GetItemData(hItem);
if( m_pInfo->IsDirNode(pNode) )
bEnable = TRUE;
}
pCmdUI->Enable( bEnable );
}
void CRingView::OnUpdateRingReplaceFile(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
CTreeCtrl &tc = GetTreeCtrl();
BOOL bEnable = FALSE;
HTREEITEM hItem = tc.GetSelectedItem();
if( hItem != NULL )
{
CDirFileNode * pNode = (CDirFileNode *)tc.GetItemData(hItem);
if( !m_pInfo->IsDirNode(pNode) )
bEnable = TRUE;
}
pCmdUI->Enable( bEnable );
}
void CRingView::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint)
{
// TODO: Add your specialized code here and/or call the base class
if( pSender != this && lHint == WM_OUTBAR_GOTO )
{
this->SetFocus();
CTreeCtrl &tc = GetTreeCtrl();
HTREEITEM hItem = (HTREEITEM)pHint;
tc.SelectItem(hItem);
tc.EnsureVisible(hItem);
}
}
void CRingView::OnOptionRingSizeinfo()
{
// TODO: Add your command handler code here
POSITION pos = m_SizeInfo.GetStartPosition();
CDocument * pDoc = GetDocument();
ASSERT_VALID( pDoc );
OUT_BAR_PARAM obp;
obp.arrTxt.Add("Name");
obp.arrTxt.Add("Old Size(Bytes)");
obp.arrTxt.Add("New Size(Bytes)");
pDoc->UpdateAllViews(this, WM_OUTBAR_INSERT_CLMN, (CObject *)&obp);
CTreeCtrl &tc = GetTreeCtrl();
DWORD dwKey, dwOld, dwNew;
CString strTxt;
while( pos != NULL )
{
obp.arrTxt.RemoveAll();
m_SizeInfo.GetNextAssoc(pos, dwKey, dwOld, dwNew);
obp.arrTxt.Add( tc.GetItemText( (HTREEITEM)dwKey ) );
strTxt.Format( _T("%d"), dwOld );
obp.arrTxt.Add( strTxt );
strTxt.Format( _T("%d"), dwNew );
obp.arrTxt.Add( strTxt );
obp.dwData = dwKey;
pDoc->UpdateAllViews(this, WM_OUTBAR_ADD_ITEM, (CObject *)&obp);
}
CWnd * pFrame = (CWnd *)GetParentFrame();
_ASSERTE( pFrame != NULL );
pFrame->SendMessage(WM_SHOW_OUTBAR, SHOW_OUTBAR, 0);
}
void CRingView::OnUpdateOptionRingSizeinfo(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->Enable( m_SizeInfo.GetStartPosition() != NULL );
}
void CRingView::OnRingExportToDir()
{
// TODO: Add your command handler code here
CTreeCtrl &tc = GetTreeCtrl();
HTREEITEM hItem = tc.GetSelectedItem();
if( hItem == NULL )
hItem = TVI_ROOT;
CDirFileNode * pRoot = hItem != TVI_ROOT ?
(CDirFileNode *)tc.GetItemData(hItem) :
(CDirFileNode *)m_pInfo->GetRoot();
CFileDialog dlg(FALSE,
NULL,
pRoot->szName);
if(dlg.DoModal() == IDCANCEL)
return;
CString strDirName = dlg.GetPathName();
if( strDirName.IsEmpty() )
return;
CWaitCursor waitCur;
EnumAndExportRings(pRoot,strDirName);
}
void CRingView::OnRingExportToFile()
{
// TODO: Add your command handler code here
CTreeCtrl &tc = GetTreeCtrl();
HTREEITEM hItem = tc.GetSelectedItem();
_ASSERTE( hItem != NULL );
CDirFileNode * pNode = (CDirFileNode *)tc.GetItemData(hItem);
//CFileDlg dlg(FALSE);
//dlg.SetFileExt(SZ_FILE_EXT);
//dlg.SetFileFilter(SZ_FILTER);
CFileDialog dlg(FALSE,
SZ_FILE_EXT,
pNode->szName,
OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
SZ_FILTER);
if(dlg.DoModal() == IDCANCEL)
return;
CString strFileName = dlg.GetPathName();
if( strFileName.IsEmpty() )
return;
CWaitCursor waitCur;
g_theApp.m_MMIRes.ExportRing(pNode->szID,strFileName);
}
void CRingView::OnUpdateRingExportToFile(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
CTreeCtrl &tc = GetTreeCtrl();
BOOL bEnable = FALSE;
HTREEITEM hItem = tc.GetSelectedItem();
if( hItem != NULL )
{
CDirFileNode * pNode = (CDirFileNode *)tc.GetItemData(hItem);
if( !m_pInfo->IsDirNode(pNode) )
bEnable = TRUE;
}
pCmdUI->Enable( bEnable );
}
void CRingView::OnUpdateRingExportToDir(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
CTreeCtrl &tc = GetTreeCtrl();
BOOL bEnable = FALSE;
HTREEITEM hItem = tc.GetSelectedItem();
if( hItem != NULL )
{
CDirFileNode * pNode = (CDirFileNode *)tc.GetItemData(hItem);
if( m_pInfo->IsDirNode(pNode) )
bEnable = TRUE;
}
pCmdUI->Enable( bEnable );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -