• 大小: 18.42MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-07-03
  • 语言: C/C++
  • 标签: ListCtrl  Combox  

资源简介

MFC ListCtrl控件上增加Comb以及可编写子项 并且可以保存已经删除每一行的数据

资源截图

代码片段和文件信息

/*******************************************************************************
Author : Aravindan Premkumar
Unregistered Copyright 2003 : Aravindan Premkumar
All Rights Reserved

This piece of code does not have any registered copyright and is free to be 
used as necessary. The user is free to modify as per the requirements. As a
fellow developer all that I expect and request for is to be given the 
credit for intially developing this reusable code by not removing my name as 
the author.
*******************************************************************************/

#include “stdafx.h“
#include “ComboListCtrl.h“
#include “InplaceCombo.h“
#include “InPlaceEdit.h“

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

//#defines
#define FIRST_COLUMN 0
#define MIN_COLUMN_WIDTH 10
#define MAX_DROP_DOWN_ITEM_COUNT 10

/////////////////////////////////////////////////////////////////////////////
// CComboListCtrl

CComboListCtrl::CComboListCtrl()
{
m_iColumnCounts = 0;
m_ComboSupportColumnsList.RemoveAll();
m_ReadOnlyColumnsList.RemoveAll();
m_strValidEditCtrlChars.Empty();
m_dwEditCtrlstyle = ES_AUTOHSCROLL | ES_AUTOVSCROLL | ES_LEFT | ES_NOHIDESEL;
m_dwDropDownCtrlstyle = WS_BORDER | WS_CHILD | WS_VISIBLE | ES_AUTOHSCROLL | ES_AUTOVSCROLL | 
CBS_DROPDOWNLIST | CBS_DISABLENOSCROLL;
}

CComboListCtrl::~CComboListCtrl()
{
CInPlaceCombo::DeleteInstance();
CInPlaceEdit::DeleteInstance();  
}


BEGIN_MESSAGE_MAP(CComboListCtrl CListCtrl)
//{{AFX_MSG_MAP(CComboListCtrl)
ON_WM_HSCROLL()
ON_WM_VSCROLL()
ON_WM_LBUTTONDOWN()
ON_NOTIFY_REFLECT(LVN_ENDLABELEDIT OnEndLabelEdit)
ON_NOTIFY_REFLECT(LVN_BEGINLABELEDIT OnBeginLabelEdit)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CComboListCtrl message handlers

CInPlaceCombo* CComboListCtrl::ShowInPlaceList(int iRowIndex int iColumnIndex CStringList& rComboItemsList 
   CString strCurSelecetion /*= ““*/ int iSel /*= -1*/)
{
// The returned obPointer should not be saved

// Make sure that the item is visible
if (!EnsureVisible(iRowIndex TRUE))
{
return NULL;
}

// Make sure that iColumnIndex is valid 
CHeaderCtrl* pHeader = static_cast (GetDlgItem(FIRST_COLUMN));

int iColumnCount = pHeader->GetItemCount();

if (iColumnIndex >= iColumnCount || GetColumnWidth(iColumnIndex) < MIN_COLUMN_WIDTH) 
{
return NULL;
}

// Calculate the rectangle specifications for the combo box
CRect obCellRect(0 0 0 0);
CalculateCellRect(iColumnIndex iRowIndex obCellRect);

int iHeight = obCellRect.Height();  
int iCount = (int )rComboItemsList.GetCount();

iCount = (iCount < MAX_DROP_DOWN_ITEM_COUNT) ? 
iCount + MAX_DROP_DOWN_ITEM_COUNT : (MAX_DROP_DOWN_ITEM_COUNT + 1); 

obCellRect.bottom += iHeight * iCount; 

// Create the in place

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2012-12-13 15:32  ListCtrlComboEdit\
     目录           0  2012-12-13 17:23  ListCtrlComboEdit\ListCtrl\
     文件       12164  2012-03-29 13:58  ListCtrlComboEdit\ListCtrl\ComboListCtrl.cpp
     文件        5022  2005-10-28 15:49  ListCtrlComboEdit\ListCtrl\ComboListCtrl.h
     目录           0  2012-12-13 17:23  ListCtrlComboEdit\ListCtrl\Debug\
     文件        6582  2012-12-13 17:23  ListCtrlComboEdit\ListCtrl\Debug\BuildLog.htm
     文件       75179  2012-12-13 17:11  ListCtrlComboEdit\ListCtrl\Debug\ComboListCtrl.obj
     文件       37041  2012-12-13 17:11  ListCtrlComboEdit\ListCtrl\Debug\InPlaceCombo.obj
     文件       31216  2012-12-13 17:11  ListCtrlComboEdit\ListCtrl\Debug\InPlaceEdit.obj
     文件      120832  2012-12-13 17:23  ListCtrlComboEdit\ListCtrl\Debug\ListCtrl.exe
     文件         920  2012-12-13 17:11  ListCtrlComboEdit\ListCtrl\Debug\ListCtrl.exe.embed.manifest
     文件         984  2012-12-13 17:11  ListCtrlComboEdit\ListCtrl\Debug\ListCtrl.exe.embed.manifest.res
     文件         861  2012-12-13 17:23  ListCtrlComboEdit\ListCtrl\Debug\ListCtrl.exe.intermediate.manifest
     文件     1297532  2012-12-13 17:23  ListCtrlComboEdit\ListCtrl\Debug\ListCtrl.ilk
     文件       21925  2012-12-13 17:11  ListCtrlComboEdit\ListCtrl\Debug\ListCtrl.obj
     文件    22085632  2012-12-13 17:11  ListCtrlComboEdit\ListCtrl\Debug\ListCtrl.pch
     文件     3099648  2012-12-13 17:23  ListCtrlComboEdit\ListCtrl\Debug\ListCtrl.pdb
     文件       23388  2012-12-13 17:11  ListCtrlComboEdit\ListCtrl\Debug\ListCtrl.res
     文件       52062  2012-12-13 17:23  ListCtrlComboEdit\ListCtrl\Debug\ListCtrlDlg.obj
     文件          65  2012-12-13 17:23  ListCtrlComboEdit\ListCtrl\Debug\mt.dep
     文件      310523  2012-12-13 17:11  ListCtrlComboEdit\ListCtrl\Debug\stdafx.obj
     文件      756736  2012-12-13 17:23  ListCtrlComboEdit\ListCtrl\Debug\vc90.idb
     文件     1593344  2012-12-13 17:23  ListCtrlComboEdit\ListCtrl\Debug\vc90.pdb
     文件        4487  2003-12-24 16:11  ListCtrlComboEdit\ListCtrl\InPlaceCombo.cpp
     文件        2880  2012-03-29 12:47  ListCtrlComboEdit\ListCtrl\InPlaceCombo.h
     文件        5024  2004-07-14 09:26  ListCtrlComboEdit\ListCtrl\InPlaceEdit.cpp
     文件        2847  2012-03-29 12:47  ListCtrlComboEdit\ListCtrl\InPlaceEdit.h
     文件       42748  2012-12-13 15:34  ListCtrlComboEdit\ListCtrl\ListCtrl.aps
     文件        1478  2005-10-28 15:45  ListCtrlComboEdit\ListCtrl\ListCtrl.cpp
     文件         449  2005-10-28 15:45  ListCtrlComboEdit\ListCtrl\ListCtrl.h
     文件        5285  2005-10-28 16:56  ListCtrlComboEdit\ListCtrl\ListCtrl.rc
............此处省略43个文件信息

评论

共有 条评论