mfc 绘制 圆形按钮 继承CButton
来源:互联网 发布:海拉尔二中分尸案 知乎 编辑:程序博客网 时间:2024/06/05 17:47
头文件
// MyButton 圆形按钮class MyButton : public CButton{private:bool is_pressed; //鼠标是否按下public:virtual void PreSubclassWindow(); //修改自绘属性virtual void DrawItem(LPDRAWITEMSTRUCT /*lpDrawItemStruct*/); //绘制 圆形按钮public:DECLARE_MESSAGE_MAP()afx_msg void OnLButtonDown(UINT nFlags, CPoint point); //鼠标按下afx_msg void OnLButtonUp(UINT nFlags, CPoint point); //鼠标松开afx_msg BOOL OnEraseBkgnd(CDC* pDC); //不擦除背景};
实现文件
// MyButtonvoid MyButton::PreSubclassWindow(){ModifyStyle(0,BS_OWNERDRAW);is_pressed = false;CButton::PreSubclassWindow();}void MyButton::DrawItem(LPDRAWITEMSTRUCT lp){CRect rc = lp->rcItem;CDC dc;dc.Attach(lp->hDC);dc.SetBkMode(TRANSPARENT);CBrush br;br.CreateStockObject(NULL_BRUSH);dc.SelectObject(&br);if (is_pressed){CPen pen(PS_SOLID,2,RGB(255,0,0));dc.SelectObject(&pen);dc.Ellipse(0,0,rc.Width(),rc.Height());dc.SetTextColor(RGB(255,0,0));}else{CPen pen(PS_SOLID,2,RGB(0,255,0));dc.SelectObject(&pen);dc.Ellipse(0,0,rc.Width(),rc.Height());dc.SetTextColor(RGB(0,255,0));}CString str;GetWindowText(str);dc.DrawText(str,CRect(0,0,rc.right,rc.bottom),DT_CENTER | DT_VCENTER | DT_SINGLELINE);dc.DeleteDC();}BEGIN_MESSAGE_MAP(MyButton, CButton)ON_WM_LBUTTONDOWN()ON_WM_LBUTTONUP()ON_WM_ERASEBKGND()END_MESSAGE_MAP()void MyButton::OnLButtonDown(UINT nFlags, CPoint point){is_pressed = true;CButton::OnLButtonDown(nFlags, point);}void MyButton::OnLButtonUp(UINT nFlags, CPoint point){is_pressed = false;CButton::OnLButtonUp(nFlags, point);}BOOL MyButton::OnEraseBkgnd(CDC* pDC){return TRUE; //不擦除背景}
为 按钮 关联 控件变量,在.h文件中将按钮类型改为MyButton即可。
- mfc 绘制 圆形按钮 继承CButton
- VC MFC按钮(CButton)控件
- VC/MFC按钮(CButton)控件
- VC MFC按钮(CButton)控件
- 绘制圆形按钮
- android 绘制圆形按钮
- 从CButton继承产生链接风格按钮
- MFC重绘控件篇---按钮CButton
- MFC 为按钮(CButton )添加位图
- [MFC]传统控件介绍、CButton按钮类
- MFC:三角形按钮(重绘CButton)
- CButton&MFC
- MFC自绘制按钮
- MFC 绘制标题栏 按钮
- [MFC]传统控件:控件简介以及CButton按钮类
- 继承JButton,做一个圆形的按钮。
- (VC++2013)MFC自绘圆形按钮
- 如何创建按钮CButton
- Java中一个有趣的问题 BufferedOutputStream
- 在ubuntu上安装LAMP
- %1 Is Not a Valid Win32 Application
- Tablelayout 属性详解
- 学习HTML5不可错过的12家国外网站
- mfc 绘制 圆形按钮 继承CButton
- How To Install LAMP (Linux, Apache, MySQL, PHP) On Ubuntu 11.04/11.10/12.04
- Ubuntu 12.04的人工小帮手HUD介绍
- .Net 4.5中的HttpClient试用
- 达芬奇数字媒体片上系统的架构和 Linux 启动过程
- Linux Notification chain学习
- Java时间日期格式转换 格式化后的日期解析成时间戳
- hdu 4197 Popping Balloons
- 滑动条: