#if !defined(AFX_GRIDCELLCOMBO_H__ECD42822_16DF_11D1_992F_895E185F9C72__INCLUDED_)
|
#define AFX_GRIDCELLCOMBO_H__ECD42822_16DF_11D1_992F_895E185F9C72__INCLUDED_
|
|
#if _MSC_VER >= 1000
|
#pragma once
|
#endif // _MSC_VER >= 1000
|
|
/////////////////////////////////////////////////////////////////////////////
|
// GridCellCombo.h : header file
|
//
|
// MFC Grid Control - Grid combo cell class header file
|
//
|
// Written by Chris Maunder <chris@codeproject.com>
|
// Copyright (c) 1998-2005. All Rights Reserved.
|
//
|
// This code may be used in compiled form in any way you desire. This
|
// file may be redistributed unmodified by any means PROVIDING it is
|
// not sold for profit without the authors written consent, and
|
// providing that this notice and the authors name and all copyright
|
// notices remains intact.
|
//
|
// An email letting me know how you are using it would be nice as well.
|
//
|
// This file is provided "as is" with no expressed or implied warranty.
|
// The author accepts no liability for any damage/loss of business that
|
// this product may cause.
|
//
|
// For use with CGridCtrl v2.10
|
//
|
//////////////////////////////////////////////////////////////////////
|
|
|
#include "GridCell.h"
|
|
|
class AFX_EXT_CLASS CGridCellCombo : public CGridCell
|
{
|
friend class CGridCtrl;
|
DECLARE_DYNCREATE(CGridCellCombo)
|
|
public:
|
CGridCellCombo();
|
|
// editing cells
|
public:
|
virtual BOOL Edit(int nRow, int nCol, CRect rect, CPoint point, UINT nID, UINT nChar);
|
virtual CWnd* GetEditWnd() const;
|
virtual void EndEdit();
|
|
// Operations
|
public:
|
virtual CSize GetCellExtent(CDC* pDC);
|
|
// CGridCellCombo specific calls
|
public:
|
void SetOptions(const CStringArray& ar);
|
void GetOptions(CStringArray& ar);
|
void SetStyle(DWORD dwStyle) { m_dwStyle = dwStyle; }
|
DWORD GetStyle() { return m_dwStyle; }
|
|
protected:
|
virtual BOOL Draw(CDC* pDC, int nRow, int nCol, CRect rect, BOOL bEraseBkgnd = TRUE);
|
|
CStringArray m_Strings;
|
DWORD m_dwStyle;
|
};
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
// CComboEdit window
|
|
#define IDC_COMBOEDIT 1001
|
|
class CComboEdit : public CEdit
|
{
|
// Construction
|
public:
|
CComboEdit();
|
|
// Attributes
|
public:
|
|
// Operations
|
public:
|
|
// Overrides
|
// ClassWizard generated virtual function overrides
|
//{{AFX_VIRTUAL(CComboEdit)
|
virtual BOOL PreTranslateMessage(MSG* pMsg);
|
//}}AFX_VIRTUAL
|
|
// Implementation
|
public:
|
virtual ~CComboEdit();
|
|
// Generated message map functions
|
protected:
|
//{{AFX_MSG(CComboEdit)
|
afx_msg void OnKillFocus(CWnd* pNewWnd);
|
afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
|
afx_msg void OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags);
|
//}}AFX_MSG
|
|
DECLARE_MESSAGE_MAP()
|
};
|
|
/////////////////////////////////////////////////////////////////////////////
|
// CInPlaceList window
|
|
class CInPlaceList : public CComboBox
|
{
|
friend class CComboEdit;
|
|
// Construction
|
public:
|
CInPlaceList(CWnd* pParent, // parent
|
CRect& rect, // dimensions & location
|
DWORD dwStyle, // window/combobox style
|
UINT nID, // control ID
|
int nRow, int nColumn, // row and column
|
COLORREF crFore, COLORREF crBack, // Foreground, background colour
|
CStringArray& Items, // Items in list
|
CString sInitText, // initial selection
|
UINT nFirstChar); // first character to pass to control
|
|
// Attributes
|
public:
|
CComboEdit m_edit; // subclassed edit control
|
|
// Operations
|
public:
|
|
// Overrides
|
// ClassWizard generated virtual function overrides
|
//{{AFX_VIRTUAL(CInPlaceList)
|
protected:
|
virtual void PostNcDestroy();
|
//}}AFX_VIRTUAL
|
|
// Implementation
|
public:
|
virtual ~CInPlaceList();
|
void EndEdit();
|
|
protected:
|
int GetCorrectDropWidth();
|
|
// Generated message map functions
|
protected:
|
//{{AFX_MSG(CInPlaceList)
|
afx_msg void OnKillFocus(CWnd* pNewWnd);
|
afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
|
afx_msg void OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags);
|
afx_msg void OnDropdown();
|
afx_msg void OnSelChange();
|
afx_msg UINT OnGetDlgCode();
|
afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor);
|
//}}AFX_MSG
|
//afx_msg void OnSelendOK();
|
|
DECLARE_MESSAGE_MAP()
|
|
private:
|
int m_nNumLines;
|
CString m_sInitText;
|
int m_nRow;
|
int m_nCol;
|
UINT m_nLastChar;
|
BOOL m_bExitOnArrows;
|
COLORREF m_crForeClr, m_crBackClr;
|
};
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
//{{AFX_INSERT_LOCATION}}
|
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
|
|
#endif // !defined(AFX_GRIDCELLCOMBO_H__ECD42822_16DF_11D1_992F_895E185F9C72__INCLUDED_)
|