- 5
- 0
- 约2.13千字
- 约 6页
- 2017-06-07 发布于重庆
- 举报
VC2010中实现自定义窗口按钮控件
VC++ 2010中实现自定义窗口按钮控件新建一个MFC类使得它继承与CButton类;32.在生成的类中添加变量#pragmaonce// CCustomButtonclassCCustomButton : publicCButton{DECLARE_DYNAMIC(CCustomButton)public:CCustomButton();virtual ~CCustomButton();BOOL m_IsPressed;protected:DECLARE_MESSAGE_MAP()public:virtualvoidDrawItem(LPDRAWITEMSTRUCT /*lpDrawItemStruct*/);afx_msgvoidOnLButtonUp(UINT nFlags, CPoint point);afx_msgvoidOnLButtonDown(UINT nFlags, CPoint point);afx_msg BOOL OnEraseBkgnd(CDC* pDC);};3.。重写方法WM_BUTTONDOWN WM_LBUTTONUP// CustomButton.cpp : 实现文件//#include stdafx.h#include just test.h#include CustomButton.h// CCustomButtonIMPLEMENT_DYNAMIC(CCustomButton, CButton)CCustomButton::CCustomButton(){}CCustomButton::~CCustomButton(){}BEGIN_MESSAGE_MAP(CCustomButton, CButton)ON_WM_LBUTTONUP()ON_WM_LBUTTONDOWN()ON_WM_ERASEBKGND()END_MESSAGE_MAP()// CCustomButton消息处理程序voidCCustomButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct){CRectrect;GetClientRect(rect);CDC dc;dc.Attach(lpDrawItemStruct-hDC);dc.SetBkMode(TRANSPARENT);CBrushm_Brush;m_Brush.CreateStockObject(NULL_BRUSH);dc.SelectObject(m_Brush);if(m_IsPressed){CPenpen(PS_SOLID,2,RGB(255,2,0));dc.SelectObject(pen);HRGN rgn = CreateEllipticRgn(0,0,rect.Width(),rect.Height());SetWindowRgn(rgn,TRUE);dc.Ellipse(0,0,rect.Width(),rect.Height());dc.SetTextColor(RGB(0,0,255));}else{CPenpen(PS_SOLID,2,RGB(5,255,0));dc.SelectObject(pen);HRGN rgn = CreateEllipticRgn(0,0,rect.Width(),rect.Height());SetWindowRgn(rgn,TRUE);dc.Ellipse(0,0,rect.Width(),rect.Height());dc.SetTextColor(RGB(120,0,190));}CStringstr;GetWindowText(str);dc.DrawText(str,CRect(0,0,rect.Width(),rect.Height()),DT_CENTER|DT_VCENTER|DT_SINGLELINE);// TODO: 添加您的代码以绘制指定项}voidCCustomButton::OnLButtonUp(UINT nFlags, CPoint point){// TODO: 在此添加消息处理程序代码和/或调用默认值m_IsPressed = FALSE;CButton::OnLButtonUp(nFlags, point);}voidCCustomButton::OnLButtonDown(UINT nFlags, CPoint point){// TODO: 在此添加消息处理程序代码和/或调用默认值m_IsPressed = TRUE;CButton::OnLButtonDown(nFlags, point);}BOOL CCustomButton::OnEraseBkgnd(CDC* pDC){// TODO: 在此添
您可能关注的文档
- U盘通用PE工具箱安装系统详细图解.doc
- V-700粘度计.doc
- DB313292-2005.doc
- v-t图两面(学生版).doc
- V05107计量罐R2010-2.doc
- V-TEC4液晶面板检查标准书1.doc
- V102双玻铝合金高隔安装步骤及验收标准.doc
- V1106紧急泄放阀检修一评三案.docx
- DB42T4543-2008湖北省电子政务设备第3部分存储设备.doc
- db42-2008.doc
- (2026春新版)部编版八年级语文下册《第一单元》PPT课件.pptx
- 2018电力监控系统网络安全监测装置技术规范.docx
- 2022电力监控系统安全防护方案审核要点.docx
- 2014电力电缆光伏系统EN 50618欧标.docx
- (2026春新版)人教版二年级数学下册《第三单元 万以内数的认识》教案.docx
- (2026春新版)人教版二年级数学下册《第四单元 万以内的加法和减法》教案.docx
- (2026春新版)人教版二年级数学下册《综合与实践 时间在哪里》教案.docx
- (2026春新版)苏教版二年级数学下册《综合与实践 时间有多长》教案 .pdf
- (2026春新版)部编版三年级语文下册第3单元(教案).docx
- (2026春新版)部编版三年级语文下册第8单元(教案).docx
原创力文档

文档评论(0)