/************************************************************************/
/*  Copyright (C), 2016-2020, [IT], ��������Ȩ��;
/*  ģ �� ����;
/*  ��    ����;
/*
/*  ��    ����[V];
/*  ��    �ߣ�[IT];
/*  ��    �ڣ�[11/4/2016];
/*
/*
/*  ע    �⣺;
/*
/*  �޸ļ�¼��[IT];
/*  �޸����ڣ�;
/*  �޸İ汾��;
/*  �޸����ݣ�;
/************************************************************************/
#ifndef __TREECOMBOBOX__
#define __TREECOMBOBOX__

#include "ComboTreeCtrl.h"

#pragma once

#ifndef	COLOR_RED
#define COLOR_RED			RGB(220,0,0)
#endif	//COLOR_RED
#ifndef	COLOR_ALERT
#define COLOR_ALERT			RGB(255,180,180)
#endif	//COLOR_ALERT
/////////////////////////////////////////////////////////////////////////////
// CTreeComboBox  window

class CTreeComboBox : public CComboBox
{
	CString m_pretext;
	// Construction
public:
	CTreeComboBox();

	// Attributes
public:
	BOOL m_bTree;

	// Operations
public:
	void DisplayTree();
	void SetTitle(CString sTitle);
	BOOL IsAlertBkg(){ return m_bAlertBkg; }
	BOOL IsAlertText(){ return m_bAlertText; }
	CTreeCtrl& GetTreeCtrl(){ return m_Tree; }
	int GetDroppedWidth(){ return m_droppedWidth; };
	int GetDroppedHeight(){ return m_droppedHeight; };
	void SetDroppedWidth(int nWidth){ m_droppedWidth = nWidth; };
	void SetDroppedHeight(int nHeight){ m_droppedHeight = nHeight; };
	void AlertBkg(BOOL bAlert = TRUE){ m_bAlertBkg = bAlert; Invalidate(); };
	void AlertText(BOOL bAlert = TRUE){ m_bAlertText = bAlert; Invalidate(); };

public:
	virtual BOOL PreTranslateMessage(MSG* pMsg);
protected:
	virtual void PreSubclassWindow();

public:
	void RefDroppedWidth();
	UINT GetTreeCount();
	void TreeCtrlDone();
	virtual ~CTreeComboBox();

protected:
	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
	afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
	afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor);
	afx_msg LRESULT OnCloseControl(WPARAM wParam, LPARAM lParam);
	DECLARE_MESSAGE_MAP()

private:
	BOOL m_bAlertBkg;
	BOOL m_bAlertText;
	int m_droppedWidth;
	int m_droppedHeight;
	HBRUSH m_hBrushAlert;
	CComboTreeCtrl m_Tree;

public:
	void InsertMyItem(IN CString strRoot, IN CString strItem);
};


#endif // __TREECOMBOBOX__;