📄 ngdisableditemcombobox.h
字号:
#ifndef __NGDisabledItemComboBox_H__
#define __NGDisabledItemComboBox_H__
// NGDisabledItemComboBox.h : header file
//
// This code is derived from that accompanying the article
// "CComboBox with disabled items" published by Petr Novotny
// (Petr.Novotny@antek.cz) on www.codeproject.com
//
// Modifications for compatibility with dropped lists by Anna-Jayne Metcalfe
// (ajm@sonardyne.co.uk or code@annasplace.me.uk)
//
class CNGDisabledItemComboBox;
/////////////////////////////////////////////////////////////////////////////
// CListBoxInsideComboBox window
class CListBoxInsideComboBox : public CWnd
{
// Construction
public:
CListBoxInsideComboBox(void);
// Attributes
protected:
CNGDisabledItemComboBox* m_pParent;
// Operations
public:
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CListBoxInsideComboBox)
//}}AFX_VIRTUAL
// Implementation
public:
virtual ~CListBoxInsideComboBox(void);
void SetParent(CNGDisabledItemComboBox*);
// Generated message map functions
protected:
//{{AFX_MSG(CListBoxInsideComboBox)
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// CNGDisabledItemComboBox window
class NGLIB_EXT_CLASS CNGDisabledItemComboBox : public CComboBox
{
// Construction
public:
CNGDisabledItemComboBox(void);
// Attributes
protected:
CString m_sSavedText; // saves text between OnSelendok and OnRealSelEndOK calls
CListBoxInsideComboBox m_ListBox;
// Operations
public:
// Overrides
public:
// default implementation uses LSB of item data; override to get other behaviour
virtual BOOL IsItemEnabled(UINT) const;
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CNGDisabledItemComboBox)
public:
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
virtual void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct);
protected:
virtual void PreSubclassWindow(void);
virtual void PostNcDestroy(void);
//}}AFX_VIRTUAL
// Implementation
public:
virtual ~CNGDisabledItemComboBox(void);
// Generated message map functions
protected:
//{{AFX_MSG(CNGDisabledItemComboBox)
afx_msg int OnCharToItem(UINT nChar, CListBox* pListBox, UINT nIndex);
afx_msg void OnSelendok(void);
afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
//}}AFX_MSG
afx_msg LRESULT OnCtlColor(WPARAM,LPARAM lParam);
afx_msg LRESULT OnRealSelEndOK(WPARAM,LPARAM);
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
#endif // !__NGDisabledItemComboBox_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -