wizardwnd.cpp
来自「混乱竞技场的全套代码,客户端资源可以网上搜」· C++ 代码 · 共 293 行
CPP
293 行
// Stingray Objective Toolkit
// AppWizard generated file
// dockwnd.cpp : implementation file
//
#include "stdafx.h"
#include "WizardWnd.h"
#include "resource.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CWizardWnd
CWizardWnd::CWizardWnd()
{
}
CWizardWnd::~CWizardWnd()
{
}
BEGIN_MESSAGE_MAP(CWizardWnd, SECControlBar)
//{{AFX_MSG_MAP(CWizardWnd)
ON_WM_CREATE()
ON_WM_SIZE()
ON_WM_ERASEBKGND()
ON_NOTIFY(TVN_SELCHANGED, IDC_MANAGE, OnSelChanged)
//}}AFX_MSG_MAP
ON_NOTIFY(TVN_ITEMEXPANDING, IDC_MANAGE, OnItemexpandingTree)
ON_NOTIFY(TVN_ITEMEXPANDED, IDC_MANAGE, OnItemexpandedTree)
ON_NOTIFY(TVN_ENDLABELEDIT, IDC_MANAGE, OnEndLabelEdit)
ON_NOTIFY(LVN_ENDLABELEDIT, IDC_MANAGE, OnEndSubItemLabelEdit)
ON_NOTIFY(NM_CLICK, IDC_MANAGE, OnClickTree)
ON_NOTIFY(NM_DBLCLK, IDC_MANAGE, OnDBClickTree)
ON_NOTIFY(NM_RCLICK, IDC_MANAGE, OnRClickInvVwTree)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CWizardWnd message handlers
int CWizardWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (SECControlBar::OnCreate(lpCreateStruct) == -1)
return -1;
// create a tree control
DWORD dwStyle = TVS_SHOWSELALWAYS |
TVS_HASBUTTONS |
TVS_LINESATROOT |
TVS_HASLINES |
TVS_EDITLABELS |
TVS_SHOWSELALWAYS |
TVS_DISABLEDRAGDROP |
WS_CHILD | WS_VISIBLE;
DWORD dwStyleEx = //TVXS_MULTISEL |
TVXS_FLYBYTOOLTIPS |
LVXS_HILIGHTSUBITEMS;
BOOL bCreated = m_wizard.Create( dwStyle, dwStyleEx,
CRect(0, 0, 0, 0),
this,
IDC_MANAGE);
ASSERT(bCreated);
return 0;
}
void CWizardWnd::OnSize(UINT nType, int cx, int cy)
{
SECControlBar::OnSize(nType, cx, cy);
if( m_wizard.GetSafeHwnd() != NULL )
{
CRect r;
GetInsideRect(r);
m_wizard.SetWindowPos( NULL, r.left, r.top, r.Width(), r.Height(), SWP_NOZORDER|SWP_NOACTIVATE );
}
}
BOOL CWizardWnd::OnEraseBkgnd( CDC* pDC )
{
SECControlBar::OnEraseBkgnd(pDC);
return TRUE;
}
void CWizardWnd::OnSelChanged(NMHDR* pNMHDR, LRESULT* pResult)
{
LPNMTREEVIEW pNMTV = (LPNMTREEVIEW)pNMHDR;
m_wizard.UpdateSelect();
TRACE(_T("Tree selection changed to hti: %0x\n"), pNMTV->itemNew.hItem);
*pResult = 0;
}
/////////////////////////////////////////////////////////////////////
void CWizardWnd::OnItemexpandingTree(NMHDR* pNMHDR, LRESULT* pResult)
{
pNMHDR;
*pResult = 0;
}
////////////////////////////////////////////////////////////////////
void CWizardWnd::OnItemexpandedTree(NMHDR* pNMHDR, LRESULT* pResult)
{
*pResult = 0;
}
////////////////////////////////////////////////////////////////////
void CWizardWnd::OnClickTree(NMHDR* pNMHDR, LRESULT* pResult)
{
pNMHDR;
/*
static HTREEITEM ghtiPrevItem = NULL;
UINT state;
DWORD dwpos;
TV_HITTESTINFO tvhti;
HTREEITEM htiItemClicked;
POINT point;
// find out where the cursor was
dwpos = GetMessagePos();
point.x = LOWORD(dwpos);
point.y = HIWORD(dwpos);
::MapWindowPoints(HWND_DESKTOP, m_wizard.m_hWnd, &point, 1);
tvhti.pt = point;
htiItemClicked = m_wizard.HitTest(&tvhti);
// if the state image is clicked, lets get the state from the item and toggle it.
if (tvhti.flags & TVHT_ONITEMSTATEICON)
{
TV_ITEM tvi;
tvi.hItem = htiItemClicked;
tvi.mask = TVIF_STATE | TVIF_HANDLE;
tvi.stateMask = TVIS_STATEIMAGEMASK;
m_wizard.GetItem(&tvi);
state = tvi.state & TVIS_STATEIMAGEMASK;
int index = (state == INDEXTOSTATEIMAGEMASK(1)) ? // TVIS_GCNOCHECK
2 : //TVIS_GCCHECK
1 ; //TVIS_GCNOCHECK
tvi.state = INDEXTOSTATEIMAGEMASK(index);
m_wizard.SetItem(&tvi);
// set the subitem text, and the overlay image
int iOverlay;
CString strExtra;
if ( index == 1)
{
strExtra = _T("Checked In");
iOverlay = 0;
}
else
{
strExtra = _T("Checked Out");
iOverlay = m_idiOverlay;
}
// set subitem text
DoSubitemTime( htiItemClicked, strExtra );
// set overlay image
SetItemOverlayImage(htiItemClicked, iOverlay );
}
*/
*pResult = 0;
}
void CWizardWnd::OnDBClickTree(NMHDR* pNMHDR, LRESULT* pResult)
{
pNMHDR;
// if(this==g_pWizard /*&& GetCurrentFFT()==TFT_ANIMATION*/)
if(!g_pMainFrame)
return;
if(m_wizard.HitTestSelectItem())
{
g_pMainFrame->ShowControlBar(g_pToolsCtl, g_pToolsCtl->IsEnable(), TRUE);
}
*pResult = 0;
}
////////////////////////////////////////////////////////////////////
void CWizardWnd::OnEndLabelEdit(NMHDR* pNMHDR, LRESULT* pResult)
{
TV_DISPINFO *ptvdi;
ptvdi = (TV_DISPINFO FAR *) pNMHDR;
TRACE(_T("End label edit for hti %0x *** %s\n"),
ptvdi->item.hItem,
ptvdi->item.pszText );
*pResult = 1; // must return 1 to commit the edit
}
////////////////////////////////////////////////////////////////////
void CWizardWnd::OnEndSubItemLabelEdit(NMHDR* pNMHDR, LRESULT* pResult)
{
LV_DISPINFO *plvdi;
plvdi = (LV_DISPINFO FAR *) pNMHDR;
// get the handle, based on the list index
HTREEITEM hti = m_wizard.GetItemAt( plvdi->item.iItem );
TRACE(_T("End label edit for hti %0x, item %d, sub item %d *** %s\n"),
hti,
plvdi->item.iItem,
plvdi->item.iSubItem,
plvdi->item.pszText );
*pResult = 1; // must return 1 to commit the edit
}
////////////////////////////////////////////////////////////////////
void CWizardWnd::OnRClickInvVwTree (NMHDR* pNMHDR, LRESULT* pResult)
{
// HTREEITEM htiTmp;
/*
CMenu menu;
CMenu *pop_up_menu;
CPoint point;
// check for selected item(s)
// if ((htiTmp = m_wizard.GetFirstSelectedItem()) == NULL)
// return;
int sel_count = m_wizard.GetSelectedCount();
// popup menu
::GetCursorPos(&point);
menu.LoadMenu(IDR_MANAGER_MENU);
if(sel_count==0)
{
pop_up_menu = menu.GetSubMenu(0);
}
else if(sel_count==1)
{
pop_up_menu = menu.GetSubMenu(1);
}
else
{
pop_up_menu = menu.GetSubMenu(2);
}
ASSERT(pop_up_menu != NULL);
BOOL bPopRet = pop_up_menu->TrackPopupMenu(TPM_LEFTALIGN | TPM_LEFTBUTTON
, point.x, point.y, AfxGetMainWnd());
if (FALSE == bPopRet)
{
TRACE(_T("ERROR: can not pop-up a menu, CWizardWnd::OnRClickInvVwTree()"));
return;
}
*/
UNREFERENCED_PARAMETER(pNMHDR);
UNREFERENCED_PARAMETER(pResult);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?