以上是效果图.
//LableControl.h
#pragma once
//标签按钮消息
#define IDC_LABLE_INDEX 0
// CLableControl
class CLableControl : public CWnd
{
DECLARE_DYNAMIC(CLableControl)
public:
CLableControl();
virtual ~CLableControl();
public:
//设置标签按钮
void setLableCount(UINT count); //标签数
void setLableSize(int cx, int cy); //标签大小
void setLableFocus(UINT index); //标签焦点
void setLableText(UINT index, TCHAR *pText); //标签文本
protected:
//框架虚函数
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
//框架消息
protected:
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
afx_msg void OnSize(UINT nType, int cx, int cy);
afx_msg void OnTimer(UINT_PTR nIDEvent);
afx_msg void OnPaint();
DECLARE_MESSAGE_MAP()
private:
CRect *m_pLable; //标签
UINT m_lableCount; //标签数
SIZE m_lableSize; //标签尺寸
int *m_pLableStatus; //标签状态
TCHAR **m_ppLableText; //标签文本
};
//LableControl.cpp
#include "stdafx.h"
#include "testLabel.h"
#include "LableControl.h"
//定时器
#define ID_DETECT_MOVELEAVE 11
//标签状态颜色
#define NORMAL_COLOR RGB(210,210,210) //正常
#define PRESS_COLOR RGB(255,255,255) //按下
#define ROVER_COLOR RGB(199,237,204) &nbs