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 + -
显示快捷键?