⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 treecombobox.h

📁 hao code hao code hao code hao code hao code
💻 H
字号:

#pragma once

#define IDC_TEXTCOMBO                   1025

#include "ComboEdit.h"
#include "ComboTree.h"
#include "XmlDocument.h"

class CTreeComboBox : public CButton
{
	DECLARE_DYNAMIC(CTreeComboBox)

public:
	BOOL FindItemByText(CString strfind);
	CTreeComboBox()
	{
		m_pActiveCombo = NULL;
		m_parentWndProc = NULL;

		m_icon = NULL;
		m_multiline = FALSE;
		m_pressed = FALSE;
		m_sort = TRUE;
	}

	virtual ~CTreeComboBox()
	{
	}

	CComboEdit * GetEdit()
	{
		return &m_edit;
	}

	CComboTree * GetTree()
	{
		return &m_tree;
	}

	BOOL IsMultiline()
	{
		return m_multiline;
	}

	BOOL IsSortEnabled()
	{
		return m_sort;
	}

	BOOL EnableSort(BOOL sort=TRUE)
	{
		m_sort = sort;
	}

	void UpdateIcon(HICON icon)
	{
		if (icon!=m_icon)
		{
			m_icon = icon;
			Invalidate();
		}
	}



	void LoadXml(CString filename, int bmp);
	void LoadString(CString info, int bmp);
	
	void Accept();

	void ShowDropDown();
	void HideDropDown();

private:

	HICON m_icon;
	HTREEITEM GetNextTreeItem(HTREEITEM hItem);
	BOOL m_multiline;
	BOOL m_pressed;
	BOOL m_sort;
	CComboEdit m_edit;
	CFont m_font;
	CComboTree m_tree;

	CImageList m_imagelist;
	CXmlDocument m_xmlDocument;

	void SetText(CString str)
	{
		m_edit.SetWindowText(str);
		m_edit.UpdateTooltip();
	}

	CString GetText()
	{
		CString str;
		m_edit.GetWindowText(str);
		return str;
	}

				
	static WNDPROC m_parentWndProc;

	static CTreeComboBox *m_pActiveCombo;

	void LoadXmlSubTree(CXmlElement *pElement, HTREEITEM hItem);
	void InterceptParentWndProc();
	void UnInterceptParentWndProc();


	static LRESULT CALLBACK ParentWindowProc(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam);
	static BOOL IsMsgOK(HWND hWnd, UINT nMsg,/* WPARAM wParam,*/ LPARAM lParam);
	
protected:


//{{AFX_VIRTUAL(CTreeComboBox)
	public:
	virtual LRESULT WindowProc( UINT message, WPARAM wParam, LPARAM lParam );
	virtual void DrawItem( LPDRAWITEMSTRUCT lpDrawItemStruct );
	protected:
	virtual void PreSubclassWindow();
	//}}AFX_VIRTUAL

//{{AFX_MSG(CTreeComboBox)
	afx_msg void OnDestroy();
	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
	afx_msg void OnKillFocus(CWnd* pNewWnd);
	afx_msg void OnSetFocus(CWnd* pOldWnd);
	afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
	afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
	//}}AFX_MSG

	DECLARE_MESSAGE_MAP()

};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -