我是MFC和C ++的初学者我希望在一个列中有一个编辑选项我试图在类中重载这些函数但是编辑选项不起作用任何人都可以帮我解决这个错误我做了什么?
class CEditableListCtrl : public CListCtrl
{
public:
int GetRowFromPoint( CPoint &point, int *col ) const;
CEdit* EditSubLabel( int nItem, int nCol );
void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
void OnEndLabelEdit(NMHDR* pNMHDR, LRESULT* pResult);
void OnLButtonDown(UINT nFlags, CPoint point);
};
class CInPlaceEdit : public CEdit
{
public:
CInPlaceEdit(int iItem, int iSubItem, CString sInitText);
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CInPlaceEdit)
public: virtual BOOL PreTranslateMessage(MSG* pMsg);
//}}AFX_VIRTUAL
public: virtual ~CInPlaceEdit();
// Generated message map functions
protected:
//{{AFX_MSG(CInPlaceEdit)
afx_msg void OnKillFocus(CWnd* pNewWnd);
afx_msg void OnNcDestroy();
afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
private:
int m_iItem;
int m_iSubItem;
CString m_sInitText;
BOOL m_bESC;
};
答案 0 :(得分:0)
如果您只需要一列可编辑,则无需执行任何操作:确保列表具有LVS_EDITLABELS样式。这将允许您编辑第0列中的文本。如果您需要编辑不同的列 - 使用CListCtrl::SetColumnOrderArray()更改可见列顺序