?? mylist.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 + -