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

📄 coollistctrl.h

📁 自绘CCombBox组件,具有combo组件的所有功能
💻 H
字号:
#if !defined(AFX_COOLLISTCTRL_H__C3D8B3C9_9B72_484D_A269_CF83A2804BE6__INCLUDED_)
#define AFX_COOLLISTCTRL_H__C3D8B3C9_9B72_484D_A269_CF83A2804BE6__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// CoolListCtrl.h : header file

//设计人:张挺 
/////////////////////////////////////////////////////////////////////////////
// CCoolListCtrl window
#include <Afxtempl.h>

class CCoolListCtrl : public CStatic
{
// Construction
public:
	CCoolListCtrl();

private:

	CBitmap *m_pButtonBmp;//图片排列顺序: 上上 下下 滑滑
		
	CRect *m_pBkImageRect;//在背景图片中切取区域
	CDC *m_pBackDC;//背景DC

	CDC memDC;
	CBitmap *pOldBmp;

	CFont *pOldFont,*font;
	CRect m_screenRect;

	CBitmap TempBmp;
	CBitmap *pOldTempBmp;

	CDC m_MemDC;
	CArray<LPTSTR,LPTSTR> m_pItemText;

	void DrawSemiTransparentRect(CDC *pDstDC, CRect rtTran, COLORREF clrSrc);

public:
	int slideWid;
private:

	BOOL GetAppointedRect(UINT iFlag, CRect *pDestRect);//获得指定区域的矩形

	INT  GetCurSeledRect(CPoint point);//判断给入的点在哪一个区域

public:

	int m_iCurFocusBtn;//当前焦点按纽,-1表示没有任何焦点FOCUS_LEFTBTN=0,FOCUS_UPBTN=1,FOCUS_DOWNBTN=2,FOCUS_SLIDER=3

private:

	int m_iItemTotal;//条目总数

	int m_iHead,m_iTail;//列表文字头和尾标志

	float m_fSliderPercent;//滑块目前百分比0~1.0

private:

	int m_SliderY;
	CRect m_SliderRect;//滑块对应的矩形
	BOOL m_bIsMouseDownFlag;//鼠标按下标志,主要用来控制滑竿上的滑块

	void GetSliderRectFromPercent(float fPercent,CRect *pRect);//通过百分比获得小滑块的位置矩形
	
	BOOL GetHeadTailFromPercent(float fPercent,int *iHead,int *iTail);//根据百分比得到头和尾
	
	BOOL SetSliderPercent(int iHead);//通过头标志设置SLIDER的位置

	int m_iCurTextID;

	BOOL m_bOnceFlag;


	void OnceCode(CDC *pDC);
	void DrawOneScreen(CDC *pDC);
	
	//文字颜色、选中文字颜色、半透颜色,选中半透颜色、边框线颜色
	COLORREF m_TextColor,m_SeledTxtColor,m_TransColor,m_SeledTransColor,m_BorderColor;

public://留给使用本控件的人使用的所有方法

	void Init(CDC *pBackDC,CRect *pRect,CRect *BkImageRect);

	void InsertText(LPTSTR sText);

	void InsertBmp(CBitmap *pBitmap);
	
	//文字颜色、选中文字颜色、半透明色、选中半透明色、边线颜色
	BOOL SetColor(COLORREF TxtColor,COLORREF SeledTxtColor,COLORREF TransColor,
					COLORREF SeledTransColor,COLORREF BorderColor);//设置颜色

	INT GetItemTotal();//获得条目总数

	LPTSTR GetCurSeledStr();//获得当前选择的条目字符串

	int GetCurSeledItem();//获得当前选中的条目

public:

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CCoolListCtrl)
	public:
	virtual BOOL DestroyWindow();
	//}}AFX_VIRTUAL

// Implementation
public:
	virtual ~CCoolListCtrl();

	// Generated message map functions
protected:
	//{{AFX_MSG(CCoolListCtrl)
	afx_msg void OnPaint();
	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
	afx_msg LRESULT OnListFurlMsg(WPARAM wParam, LPARAM lParam);//控件收拢消息处理函数
	DECLARE_MESSAGE_MAP()
};//WM_FURL_MSG

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_COOLLISTCTRL_H__C3D8B3C9_9B72_484D_A269_CF83A2804BE6__INCLUDED_)

⌨️ 快捷键说明

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