資源簡介
一個功能強大的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
評論
共有 條評論