⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 regentoolview.cpp

📁 墨香最新私服
💻 CPP
📖 第 1 页 / 共 4 页
字号:
			256,        // nDestWidth
			256,       // nDestHeight
			0,            // SrcX
			0,   // SrcY
			0,                          // nStartScan
			(WORD)256,  // nNumScans
			m_MapImageCtl,                  // lpBit
			&szBitmapInfo,     // lpBitsInfo
			DIB_RGB_COLORS);            // wUsage
*/		//泅犁 DC客 龋券己捞 乐绰 DC肺 汲沥
/*		cdc.CreateCompatibleDC(&WinDC);
		//捞 DC俊 厚飘甘阑 汲沥茄促.
		cdc.SelectObject(&m_LoadMap);
		//cdc甫 拳搁 DC pDC肺 免仿
		WinDC.BitBlt(0,0,275,407,&cdc,0,0,SRCCOPY);
*/		
		//滚瓢 喘妨咙
		if(lpDrawItemStruct->itemState & ODS_SELECTED)
		{

		}
		else
		{

		}
	}
	CFormView::OnDrawItem(nIDCtl, lpDrawItemStruct);
	
}

void CRegenToolView::BMPButtonImageSetting(char *filename, LPSTR button)
{

}

void CRegenToolView::OnDraw(CDC* pDC) 
{
	// TODO: Add your specialized code here and/or call the base class
	CRegenToolDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	CDC cdc;
/*
	// Map Image 免仿 --------------------------------------------
	BitBlt(m_hdc,0,0,m_ImageBoxRect.right,m_ImageBoxRect.bottom,m_hMemDC,m_StartImagePos.x, m_StartImagePos.y, SRCCOPY);
	//------------------------------------------------------------
*/	
	// Bitmap Button 免仿 ----------------------------------------
	m_ZoomOutBtn.SetBitmap(m_ZoomOutBitmap_on);
	m_ZoomInBtn.SetBitmap(m_ZoomInBitmap_on);
	m_SelectBtn.SetBitmap(m_SelectBitmap_on);
	m_MoveBtn.SetBitmap(m_MoveBitmap_on);
	m_MSelectNoAreaBtn.SetBitmap(m_MonsterSelectNoAreaBitmap_on);
	m_MSelectAreaBtn.SetBitmap(m_MonsterSelectAreaBitmap_on);
	m_DeleteBtn.SetBitmap(m_DeleteBitmap_on);
	//------------------------------------------------------------
	
//	if(GetStartSelectFlag())
	{
/*		LISTMONSTER::iterator it;
		for(it = pDoc->GetMonsterList().begin(); it != pDoc->GetMonsterList().end(); ++it)
		{
			
			MONSTER_POINT* mp = (MONSTER_POINT*)*it;
			CPoint tmppos = mp->point;
			tmppos.x -= m_HScrollPos;		// 胶农费 蔼阑 猾促.
			tmppos.y -= m_VScrollPos;
			m_SelectXY.Draw(pDC, tmppos);		
		}
*/		
	
	}
	
//	m_rectTrack.Draw(pDC);
}

void CRegenToolView::OnLButtonUp(UINT nFlags, CPoint point) 
{
	CRegenToolDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: Add your message handler code here and/or call default
	//眠利冠胶狼 OnLButtonUP龋免
/*	m_rectTrack.OnLButtonUp(nFlags,point);
	//橇肺技辑 0栏肺 汲沥
	m_nProcess=0;
	//眠利冠胶 康开阑 m_rect俊 历厘
	m_rect=m_rectTrack.m_rectTrack;
	m_rectTrack.SetRect(m_rect);
	//橇肺技辑 汲沥
	m_rectTrack.SetProcess(m_nProcess);
*/	//拳搁 犁免仿
	m_bDown = FALSE;
	CString sztemp;
	if(GetStartSelectFlag())
	{
		if(m_SelectBtn.GetCheck()) // 急琶滚瓢 眉农
		{
			if(m_ConditionAllCheckFlag)
			{
				//m_SelectXY.OnLButtonUp(nFlags, point);
				
				POINT* ViewMousePos = CalcSelectPoint(point);
				if(!ViewMousePos)
					return;
				VECTOR3* TargetPos = GetPickedPosition(ViewMousePos->x,ViewMousePos->y);
				if(!TargetPos)
					return;
				if(MAP->CollisonCheck(TargetPos, TargetPos, TargetPos))
					return;
				m_GroupEdit.GetWindowText(sztemp);

				if(pDoc->AddMonsterCheck(sztemp))
					InsertMonster(TargetPos);		
				else
				{
					AfxMessageBox("弊缝捞 粮犁窍瘤 臼嚼聪促. 殿废刚历 秦林技堪!!!");
				}
			}
			else
			{
				AfxMessageBox("炼扒阑 刚历 汲沥秦 林技堪!!!");
			}
			
		}
		else if(m_DeleteBtn.GetCheck())
		{
			if(point.x == m_OldRect.left && point.y == m_OldRect.top)
			{
				POINT* ViewMousePos = CalcSelectPoint(point);
				if(!ViewMousePos)
					return;
				VECTOR3* TargetPos = GetPickedPosition(ViewMousePos->x,ViewMousePos->y);
				if(!TargetPos)
					return;
				
				static VECTOR3 pos;
				static float dist;
				static POINT pt;
				pt.x = ViewMousePos->x;
				pt.y = ViewMousePos->y;
				DWORD modelindex,objectindex;
				GXOBJECT_HANDLE handle = 
					g_pExecutive->GXOGetObjectWithScreenCoord(&pos,&modelindex,&objectindex,&dist,&pt,0,0);
				if(handle == NULL)
					return;
				
				MONSTER_POINT* mp = pDoc->FindSelectMonsterHandle(handle);
				if(!mp)
					return;
				
				int MaxCount = m_MListCtrl.GetItemCount();
				int MinCount = 0;
				for(int i = MinCount; i < MaxCount; i++)
				{
					char OriIndex[16];
					memset((void*)OriIndex, 0, sizeof(16));
					itoa((int)mp->SelectCount, OriIndex, 10);
					//				strcpy(FindIndex, OriIndex);
					CString FindIndex = m_MListCtrl.GetItemText(i, 4);
					//				m_MListCtrl.GetItem(&pItem);
					if(!strcmp(FindIndex, OriIndex))// 府胶飘牧飘费俊辑 昏力
					{
						m_MListCtrl.DeleteItem(i);
						
					}
				}
				if(GetMonsterIndex()==START_MONSTERINDEX)
					return;
//				ReleaseMonsterIndex();
//				DWORD idx = GetMonsterIndex();
				CString szTemp;
				szTemp.Format("%d", mp->MonsterGroup);
				pDoc->ReleaseGroupMonsterCount(szTemp);
				pDoc->SubCount();
				// 甘俊辑 捞固瘤 昏力
				g_pExecutive->DeleteGXObject(mp->MHandle);
				// 府胶飘俊辑 昏力
				pDoc->DeleteSelectMonsterPoint((void*)mp);
				
				
			}
			else
			{
				CRect SearchRect;
				if(m_SelectRect.left < point.x)
				{
					SearchRect.left = m_SelectRect.left;
					SearchRect.right = point.x;
				}
				else
				{
					SearchRect.left = point.x;
					SearchRect.right = m_SelectRect.left;
				}
				if(m_SelectRect.top < point.y)
				{
					SearchRect.top = m_SelectRect.top;
					SearchRect.bottom = point.y;
				}
				else
				{
					SearchRect.top = point.y;
					SearchRect.bottom = m_SelectRect.top;
				}
					

				for(int i = SearchRect.left; i < SearchRect.right; i=i+10)
				{
					for(int j = SearchRect.top; j < SearchRect.bottom; j=j+10)
					{
						CPoint tmppos;
						tmppos.x = i;
						tmppos.y = j;
						POINT* ViewMousePos = CalcSelectPoint(tmppos);
						if(!ViewMousePos)
							continue;
						VECTOR3* TargetPos = GetPickedPosition(ViewMousePos->x,ViewMousePos->y);
						if(!TargetPos)
							continue;
						
						static VECTOR3 pos;
						static float dist;
						static POINT pt;
						pt.x = ViewMousePos->x;
						pt.y = ViewMousePos->y;
						GXOBJECT_HANDLE handle = g_pExecutive->GXOGetObjectWithScreenCoord(&pos,0,0,&dist,&pt,0,0);
						if(handle == NULL)
							continue;
						
						MONSTER_POINT* mp = pDoc->FindSelectMonsterHandle(handle);
						if(!mp)
							continue;
						
						int MaxCount = m_MListCtrl.GetItemCount();
						int MinCount = 0;
						for(int i = MinCount; i < MaxCount; i++)
						{
							char OriIndex[16];
							memset((void*)OriIndex, 0, sizeof(16));
							itoa((int)mp->SelectCount, OriIndex, 10);
							//				strcpy(FindIndex, OriIndex);
							CString FindIndex = m_MListCtrl.GetItemText(i, 4);
							//				m_MListCtrl.GetItem(&pItem);
							if(!strcmp(FindIndex, OriIndex))
								// 府胶飘牧飘费俊辑 昏力
								m_MListCtrl.DeleteItem(i);
						}
						if(GetMonsterIndex()==START_MONSTERINDEX)
							return;
//						ReleaseMonsterIndex();
//						DWORD idx = GetMonsterIndex();
						CString szTemp;
						szTemp.Format("%d", mp->MonsterGroup);
						pDoc->ReleaseGroupMonsterCount(szTemp);
						pDoc->SubCount();
						// 甘俊辑 捞固瘤 昏力
						g_pExecutive->DeleteGXObject(mp->MHandle);
						// 府胶飘俊辑 昏力
						pDoc->DeleteSelectMonsterPoint((void*)mp);
					}
				}
			}
		}
		else
		{
			MessageBox("坷弗率 酒贰俊 困摹茄\r\n扁瓷虐甫 急琶秦 林技堪!! ^o^",
				"累诀 窍妨搁", MB_ICONINFORMATION|MB_OK);
		}
	}
	else
	{
		MessageBox("甘颇老捞 乐绢具 累诀阑 窍瘤!!(滚钒~) \r\nOpen阑 穿福绊 甘阑 凯绢林技堪^o^",
			"甘颇老 咯绰扒 扁夯, 扁夯俊 面角~~", MB_ICONINFORMATION|MB_OK);
	}
	
	CFormView::OnLButtonUp(nFlags, point);
}

void CRegenToolView::OnLButtonDown(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
//	m_rectTrack.OnLButtonDown(nFlags,point);
//	if(GetStartSelectFlag())
	{
		m_bDown = TRUE;
		m_SelectRect = CRect(point.x, point.y, point.x, point.y);
		m_OldRect = m_SelectRect;
	}
	CFormView::OnLButtonDown(nFlags, point);
}

void CRegenToolView::OnRButtonDown(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	
	CFormView::OnRButtonDown(nFlags, point);
}

void CRegenToolView::OnRButtonUp(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	
	CFormView::OnRButtonUp(nFlags, point);
}

void CRegenToolView::OnMouseMove(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
//	m_rectTrack.OnMouseMove(nFlags,point);
//	if(GetStartSelectFlag())
	{
		if(m_bDown)
		{
			CWnd * wnd = GetDlgItem(IDC_MAPIMAGE);
			m_hdc = ::GetDC(wnd->m_hWnd);
			POINT* ViewMousePos = CalcSelectPoint(point);
			if(!ViewMousePos)
				return;
			CDC *pDC=wnd->GetDC();
			pDC->SetROP2(R2_XORPEN);
			CPen pen,*oldpen;
			pen.CreatePen(PS_DOT,2,RGB(127,127,127));
			oldpen=pDC->SelectObject(&pen);
			pDC->MoveTo(m_OldRect.TopLeft());
			pDC->LineTo(m_OldRect.right,m_OldRect.top);
			pDC->LineTo(m_OldRect.BottomRight());
			pDC->LineTo(m_OldRect.left,m_OldRect.bottom);
			pDC->LineTo(m_OldRect.TopLeft());
			
			m_rect=CRect(m_SelectRect.left,m_SelectRect.top,ViewMousePos->x,ViewMousePos->y);
			pDC->MoveTo(m_SelectRect.TopLeft());
			pDC->LineTo(m_SelectRect.right,m_SelectRect.top);
			pDC->LineTo(m_SelectRect.BottomRight());
			pDC->LineTo(m_SelectRect.left,m_SelectRect.bottom);
			pDC->LineTo(m_SelectRect.TopLeft());
			pDC->SelectObject(oldpen);
			pen.DeleteObject();
			ReleaseDC(pDC);
			m_OldRect=m_SelectRect;
		}
		else
		{
			if(g_pMouse)
				g_pMouse->MoveMouse((DWORD)nFlags, point.x, point.y);
		}
	}
	CFormView::OnMouseMove(nFlags, point);
}

void CRegenToolView::OnDrawBox()
{
	m_nProcess=1;
	m_rectTrack.SetProcess(m_nProcess);
}

void CRegenToolView::OnMapimage() 
{
	// TODO: Add your control notification handler code here
	AfxMessageBox("甘 捞固瘤 努腐");
}


void CRegenToolView::AddMonsterList(MData *mdata)
{
	LV_ITEM lvitem;
	lvitem.iItem = m_MListCtrl.GetItemCount();
	lvitem.mask = LVIF_TEXT|LVIF_IMAGE|LVIF_STATE;
	lvitem.iSubItem = 0;
	lvitem.stateMask = LVIS_STATEIMAGEMASK;
	lvitem.state = INDEXTOSTATEIMAGEMASK(1);
	lvitem.pszText = (LPSTR)(LPCTSTR)mdata->Group;

	m_MListCtrl.InsertItem(&lvitem);

	m_MListCtrl.SetItemText(lvitem.iItem, 1, (LPCTSTR)mdata->MonsterIdx);
	m_MListCtrl.SetItemText(lvitem.iItem, 2, (LPCTSTR)mdata->MonsterKind);
	m_MListCtrl.SetItemText(lvitem.iItem, 3, (LPCTSTR)mdata->x);
	m_MListCtrl.SetItemText(lvitem.iItem, 4, (LPCTSTR)mdata->z);
	m_MListCtrl.SetItemText(lvitem.iItem, 5, (LPCTSTR)mdata->Flag);
}

void CRegenToolView::OnSelchangeNpccombo() 
{
	// TODO: Add your control notification handler code here
	WORD count = (WORD)m_NpcKind.GetCurSel();
	BASE_MONSTER_LIST& mlist = g_pLoadList->m_MonsterList[count];

//	m_NumTIT.Format("Num");
//	m_RangeTIT.Format("Range");
//	m_TimeTIT.Format("Re_Time");

	CEngineObject* pMonster = new CEngineObject;
	int kind = mlist.MonsterKind;
	strcpy(m_MonsterChxName,mlist.ChxName);
		
	UpdateData(FALSE);
}

void CRegenToolView::OnSelchangeMapcombo() 
{
	// TODO: Add your control notification handler code here
	WORD count = (WORD)m_MapKind.GetCurSel();
//	MAP_LIST maplist = g_pLoadList->m_MapList[count];

//	m_MapNameStr.Format(maplist.LocalName);
	UpdateData(FALSE);
}

void CRegenToolView::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
{
	// TODO: Add your message handler code here and/or call default
	int MinPos, MaxPos;
	pScrollBar->GetScrollRange(&MinPos, &MaxPos);
	switch(nSBCode)
    {
    case SB_LINELEFT:
        {
			pScrollBar->SetScrollPos(pScrollBar->GetScrollPos() -LINE_SIZE); 
			if(m_StartImagePos.x - LINE_SIZE > MinPos)
				m_StartImagePos.x = pScrollBar->GetScrollPos() -LINE_SIZE;
			else
				m_StartImagePos.x = MinPos;
		}
        break;
    case SB_LINERIGHT:
		{
			pScrollBar->SetScrollPos(pScrollBar->GetScrollPos() +LINE_SIZE);
			if(m_StartImagePos.x + LINE_SIZE < MaxPos)
				m_StartImagePos.x = pScrollBar->GetScrollPos() +LINE_SIZE;
			else
				m_StartImagePos.x = MaxPos;
		}
        break;
    case SB_PAGELEFT:
		{
			pScrollBar->SetScrollPos(pScrollBar->GetScrollPos() -PAGE_SIZE);
			if(m_StartImagePos.x -PAGE_SIZE > MinPos)
				m_StartImagePos.x = pScrollBar->GetScrollPos() -PAGE_SIZE;
			else
				m_StartImagePos.x = MinPos;
		}
        break;
    case SB_PAGERIGHT:
        {
			pScrollBar->SetScrollPos(pScrollBar->GetScrollPos() +PAGE_SIZE);
			if(m_StartImagePos.x + PAGE_SIZE < MaxPos)
				m_StartImagePos.x = pScrollBar->GetScrollPos() +PAGE_SIZE;
			else
				m_StartImagePos.x = MaxPos;
		}
        break;
    case SB_THUMBTRACK:
        pScrollBar->SetScrollPos(nPos);
		m_StartImagePos.x = nPos;
        break;
    }
	m_HScrollPos = pScrollBar->GetScrollPos();
	CFormView::OnHScroll(nSBCode, nPos, pScrollBar);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -