资源简介
一个功能强大的Grid控件的vc源码源码
代码片段和文件信息
#include “stdafx.h“
#include “CGridColumnTraitCombo.h“
#include “CGridColumnTraitVisitor.h“
#include “CGridListCtrlEx.h“
//------------------------------------------------------------------------
// CGridColumnTraitCombo
//------------------------------------------------------------------------
CGridColumnTraitCombo::CGridColumnTraitCombo()
:m_MaxItems(7)
m_MaxWidth(200)
m_ComboBoxstyle(WS_VSCROLL | WS_HSCROLL | CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_NOINTEGRALHEIGHT)
m_pComboBox(NULL)
{}
void CGridColumnTraitCombo::Accept(CGridColumnTraitVisitor& visitor)
{
visitor.Visit(*this);
}
void CGridColumnTraitCombo::SetMaxItems(int items)
{
m_MaxItems = items;
}
int CGridColumnTraitCombo::GetMaxItems() const
{
return m_MaxItems;
}
void CGridColumnTraitCombo::SetMaxWidth(int width)
{
m_MaxWidth = width;
}
int CGridColumnTraitCombo::GetMaxWidth() const
{
return m_MaxWidth;
}
void CGridColumnTraitCombo::Setstyle(DWORD dwstyle)
{
m_ComboBoxstyle = dwstyle;
}
DWORD CGridColumnTraitCombo::Getstyle() const
{
return m_ComboBoxstyle;
}
CComboBox* CGridColumnTraitCombo::CreateComboBox(CGridListCtrlEx& owner int nRow int nCol const CRect& rect)
{
CComboBox* pComboBox = new CGridEditorComboBox(nRow nCol m_MaxWidth);
VERIFY( pComboBox->Create( WS_CHILD | m_ComboBoxstyle rect &owner 0) );
// Configure font
pComboBox->SetFont(owner.GetCellFont());
return pComboBox;
}
CWnd* CGridColumnTraitCombo::OnEditBegin(CGridListCtrlEx& owner int nRow int nCol)
{
// Get position of the cell to edit
CRect rcItem = GetCellEditRect(owner nRow nCol);
int requiredHeight = GetCellFontHeight(owner);
// Expand the size of the ComboBox according to max-elements
CRect rcFinalSize = rcItem;
rcFinalSize.bottom += rcItem.Height() + requiredHeight * m_MaxItems;
// Create edit control to edit the cell
// - Stores the pointer so elements can be dynamically added later
m_pComboBox = CreateComboBox(owner nRow nCol rcFinalSize);
VERIFY(m_pComboBox!=NULL);
// Add all items to list
if (m_ComboList.GetSize()>0)
{
LoadList(m_ComboList -1);
// Guess the currently selected item in the list
CString item = owner.GetItemText(nRow nCol);
int nCurSel = m_pComboBox->FindString(-1 item);
if (nCurSel!=-1)
m_pComboBox->SetCurSel(nCurSel);
else
m_pComboBox->SetWindowText(item);
}
else
{
CString item = owner.GetItemText(nRow nCol);
m_pComboBox->SetWindowText(item);
}
// Resize combobox according to element count
VERIFY( owner.GetCellRect(nRow nCol LVIR_LABEL rcFinalSize) );
rcFinalSize.bottom += rcItem.Height() + requiredHeight * min(m_MaxItems m_pComboBox->GetCount() + 1);
m_pComboBox->SetWindowPos(NULL // not relative to any other windows
0 0 // TopLeft corner doesn‘t change
rcFinalSize.Width() rcFinalSize.Height() // existing width new height
SWP_NOMOVE | SWP_NOZORDER // don‘t move bo
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2008-11-07 12:15 CGridListCtrlEx\
文件 2679 2008-09-11 11:05 CGridListCtrlEx\CGridColumnTrait.h
文件 9691 2008-10-21 13:11 CGridListCtrlEx\CGridColumnTraitCombo.cpp
文件 2773 2008-09-18 10:16 CGridListCtrlEx\CGridColumnTraitCombo.h
文件 4461 2008-10-21 13:11 CGridListCtrlEx\CGridColumnTraitDateTime.cpp
文件 1723 2008-09-11 11:05 CGridListCtrlEx\CGridColumnTraitDateTime.h
文件 3525 2008-10-21 13:11 CGridListCtrlEx\CGridColumnTraitEdit.cpp
文件 1329 2008-09-11 11:05 CGridListCtrlEx\CGridColumnTraitEdit.h
文件 4150 2008-10-29 16:39 CGridListCtrlEx\CGridColumnTraitText.cpp
文件 1036 2008-09-22 10:56 CGridListCtrlEx\CGridColumnTraitText.h
文件 827 2008-09-11 11:05 CGridListCtrlEx\CGridColumnTraitVisitor.h
文件 50616 2008-11-07 12:08 CGridListCtrlEx\CGridListCtrlEx.cpp
文件 7205 2008-11-07 12:08 CGridListCtrlEx\CGridListCtrlEx.h
文件 22839 2008-11-03 10:37 CGridListCtrlEx\CGridListCtrlGroups.cpp
文件 2535 2008-09-22 10:56 CGridListCtrlEx\CGridListCtrlGroups.h
文件 920 2008-09-22 10:56 CGridListCtrlEx\CGridRowTrait.h
文件 5331 2008-10-29 16:39 CGridListCtrlEx\CGridRowTraitText.cpp
文件 1092 2008-09-22 10:56 CGridListCtrlEx\CGridRowTraitText.h
文件 652 2008-09-22 10:56 CGridListCtrlEx\CGridRowTraitVisitor.h
文件 4009 2008-09-22 10:56 CGridListCtrlEx\CGridRowTraitXP.cpp
文件 667 2008-09-22 10:56 CGridListCtrlEx\CGridRowTraitXP.h
相关资源
- 操作系统 内存分配与回收 C语言模拟
- 基于MATLAB使用C语言的读取GPS的rinex的
- 使用VS2008MFC读取Excel里的数据
- linux ext2 文件系统模拟 c语言实现
- 将数据保存到excel中
- vc6读写操作excel2007的简单demo
- Tamura texture C++
- mfc ActiveX 结构体数组的传递
- KcoreVertex
- MFC对EXCEL的操作:修改单元格格式,背
- U盘专杀文件夹EXE和快捷方式病毒,恢
- 面向对象设计自定义一个示意性的复
- mfc视图区域嵌入嵌入外部exe(窗口程
- 利用MFC开发的Activex指示灯控件
- VC++access与excel数据的导入导出
- MFC操作Excel表,excel.hexcel.cpp源码
- MFC(C++)程序与文件关联后缀名含C
- VS2010/MFC 读写excel文件 操作类
- TstCon.exe
- matlab2016b配置VS2017编译器mexopts补丁文
- exFAT_BootCheckSum.whs
- 修改VB6的编译器C2.exe使它可以输出汇
- Retinex算法,C++,opencv
- JPEG图片EXIF信息提取及缩略图显示VC
- Exceptional C++(中文版).侯捷-侯老师的
- MSR retinex图像增强处理
- 感染EXE文件的VC++源码请谨慎使用.
- WPS、微软EXCEL通用C++接口表格通用C+
- expat-2.0.1
- Modbus Activex Control 1.4.5 破解版
评论
共有 条评论