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

📄 mylist.cpp

📁 CMUD源码 用来玩MUD游戏的 没开发完
💻 CPP
字号:
// MyList.cpp : implementation file
//

#include "stdafx.h"
#include "g.h"
#include "mainFrm.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CMyList

CMyList::CMyList()
{
	m_n=0;
}

CMyList::~CMyList()
{
}


BEGIN_MESSAGE_MAP(CMyList, CListCtrl)
	//{{AFX_MSG_MAP(CMyList)
	ON_NOTIFY_REFLECT(NM_CLICK, OnClick)
	ON_NOTIFY_REFLECT(NM_RCLICK, OnRclick)
	ON_WM_CONTEXTMENU()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMyList message handlers


void CMyList::AddString(CString s)
{
	InsertItem(m_n++,s);
}

CString CMyList::GetSelText()
{
	CString s;
	POSITION pos;
	pos=GetFirstSelectedItemPosition();
	int n=GetNextSelectedItem(pos);
	s=GetItemText(n,0);
	n=s.Find('(');
	if(n!=-1)
	{
		s=s.Mid(++n);
		s=s.SpanExcluding(")");
	}
	s.TrimLeft();
	return s;
}

void CMyList::RemoveAll()
{
	m_n=0;
	DeleteAllItems();

}

void CMyList::Init()
{	
	COLORREF color=RGB(0,35,90);
	SetBkColor(color);
	SetTextBkColor(color);
	SetTextColor(RGB(255,255,0));
	ModifyStyleEx(0, WS_EX_CLIENTEDGE);
}


void CMyList::OnClick(NMHDR* pNMHDR, LRESULT* pResult) 
{
	CMyBar* pBar=(CMyBar*) GetParent();
	pBar->ChangeList(GetSelText());
	*pResult = 0;
}

void CMyList::OnRclick(NMHDR* pNMHDR, LRESULT* pResult) 
{
	OnClick(pNMHDR, pResult);
	*pResult = 0;
}

void CMyList::OnContextMenu(CWnd* pWnd, CPoint point) 
{
	CMenu menu;
	CString s=GetSelText();
	menu.CreatePopupMenu();
	if(!s.IsEmpty())
	{
		CMainFrame* pFrame=(CMainFrame*)AfxGetMainWnd();
		CStdioFile file;
		if(file.Open(pFrame->m_dir+m_menu,
			CFile::modeCreate|CFile::modeNoTruncate|CFile::modeRead))
		{
			CMyBar* pb=(CMyBar*)GetParent();
			int i=0;
			CString cmd,sMenu;
			while(file.ReadString(cmd)&&i<10)
			{
				sMenu=cmd.SpanExcluding(" ");
				cmd=cmd.Mid(sMenu.GetLength()+1);
				cmd.Replace("*",s);
				menu.AppendMenu(MF_STRING,IDM_LISTMENU+i,sMenu);
				cmd.MakeLower();
				pb->m_sListMenu[i++]=cmd;
			}
		}	
	}
	else
	{
		menu.AppendMenu(MF_STRING,IDM_LISTFONT1,"大字体");
		menu.AppendMenu(MF_STRING,IDM_LISTFONT2,"中字体");
		menu.AppendMenu(MF_STRING,IDM_LISTFONT3,"小字体");
	}
	menu.TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,point.x,point.y,GetParent());
}

CString CMyList::Update(CString &str)
{
	int n,m;
	CString sRet;
	RemoveAll();
	
	if((n=str.Find(m_start))==-1
		||-1==(m=str.Find(m_end,n+m_start.GetLength())))
		return str;
	
	sRet=str.Mid(0,n)+str.Mid(m+m_end.GetLength());
 	n=str.Find("\r\n",n);
	if(n==-1)
		return "";
	
	str=str.Mid(n,m-n);
	while(CMyBar::Exclude(str,"「","」",TRUE));
	CString temp;
	str.TrimLeft();
	n=0;
	while(n!=-1)
	{
		n=str.Find("\r\n");
		if(n!=-1)
		{	
			temp=str.Left(n);
			AddString(temp);
			if(n!=-1)
				str=str.Mid(n);
			str.TrimLeft();
		}
		else if(!str.IsEmpty())
			AddString(str);
	}
	str.Empty();
	return sRet;
}

⌨️ 快捷键说明

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