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

📄 newlistctrl.cpp

📁 本程序使用Visual C++6.0编写
💻 CPP
字号:
// NewListCtrl.cpp : implementation file
//

#include "stdafx.h"
#include "NewListCtrl.h"

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

/////////////////////////////////////////////////////////////////////////////
// CNewListCtrl

CNewListCtrl::CNewListCtrl()
{
	m_nitem=-1;
    m_nsubitem=-1;
    m_nitem1=-1;
    m_nsubitem1=-1;
    m_flag=0;
}

CNewListCtrl::~CNewListCtrl()
{
}


BEGIN_MESSAGE_MAP(CNewListCtrl, CListCtrl)
	//{{AFX_MSG_MAP(CNewListCtrl)
		// NOTE - the ClassWizard will add and remove mapping macros here.
		ON_WM_LBUTTONDOWN()//左键消息
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CNewListCtrl message handlers

void CNewListCtrl::Edit()
{
	CRect rect;
	if(GetSubItemRect(m_nitem,m_nsubitem,LVIR_LABEL,rect)==FALSE)
    	return;
	int sty=WS_CHILD|WS_CLIPSIBLINGS|WS_EX_TOOLWINDOW|WS_BORDER;	//设置编辑框样式
	if(m_edit.Create(sty,rect,this,0XE704)==FALSE)	//创建编辑框
     	return;
	CString txt=GetItemText(m_nitem,m_nsubitem);
	m_edit.SetWindowText(txt);//设置编辑框的内容
	m_edit.SetFocus();
	m_edit.SetSel(0,-1);
	m_edit.ShowWindow(SW_SHOW);//显示编辑框
	m_nitem1=m_nitem;
	m_nsubitem1=m_nsubitem;
	m_flag=1;
}

void CNewListCtrl::EndEdit()
{
	if(m_nitem1!=-1&&m_nsubitem1!=-1)//判断是否为初始时
	{
		CString txt;
		m_edit.GetWindowText(txt);
		SetItemText(m_nitem1,m_nsubitem1,txt);//设置为编辑后的文件内容
		m_edit.DestroyWindow();
		m_flag=0;
	}
}

void CNewListCtrl::OnLButtonDown(UINT nFlags, CPoint point)
{
	LVHITTESTINFO testinfo;
	testinfo.pt.x=point.x;
	testinfo.pt.y=point.y;
	testinfo.flags=LVHT_ONITEMLABEL;//强调点击必是标题
	if(SubItemHitTest(&testinfo)<0)
	{
		int item=InsertItem(GetItemCount(),"");
        SetItemText(item,1,"");
    	return;
	}
    m_nitem=testinfo.iItem;//得到行号
	m_nsubitem=testinfo.iSubItem;//得到列号
	if(m_nitem==m_nitem1&&m_nsubitem==m_nsubitem1)//判断是否是前一点击的行列
    	return;
	else
	{	
		if(m_flag==1)
		{
	    	EndEdit();//结束编辑框
			return;
		}
		if(m_flag==0)
	       Edit();//创建新的编辑框对列表框进行编辑
	}
}

⌨️ 快捷键说明

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