资源简介
MFC中重绘Button为圆形Button,可以修改背景颜色、文本颜色、边框颜色等。
代码片段和文件信息
// CustomButton.cpp : implementation file
#include “stdafx.h“
/*#include “RoundButton.h“*/
#include “CustomButton.h“
CCustomButton::CCustomButton()
{
// m_IsPressed = FALSE;
// m_ColorNum = red;
}
CCustomButton::~CCustomButton()
{
}
BEGIN_MESSAGE_MAP(CCustomButton CButton)
ON_WM_LBUTTONDOWN()
ON_WM_LBUTTONUP()
ON_WM_ERASEBKGND()
END_MESSAGE_MAP()
#if 0
void CCustomButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{
// TODO: Add your code to draw the specified item
CRect rect;
GetClientRect(rect);
CDC dc;
dc.Attach(lpDrawItemStruct->hDC);
//设置背景透明
dc.SetBkMode(OPAQUE);
//创建一个位图画刷
CBrush m_Brush; //声明画刷对象
m_Brush.CreateStockobject(NULL_BRUSH); //创建画刷
dc.Selectobject(&m_Brush);
if (m_IsPressed)
{
CPen pen(PS_SOLID 2 RGB(255 0 0));
dc.Selectobject(&pen);
//根据位图大小设置按钮显示区域
HRGN h_rgn = CreateEllipticRgn(0 0 rect.Width() rect.Height()); //计算按钮的显示区域
SetWindowRgn(h_rgn true);//设置按钮的显示区域
dc.Ellipse(0 0 rect.Width() rect.Height());//绘制按钮
dc.SetTextColor(RGB(255 0 0));//设置文本颜色
}
else
{
CPen pen(PS_SOLID 2 RGB(255 255 255));
dc.Selectobject(&pen);
//根据位图大小设置按钮显示区域
HRGN h_rgn = CreateEllipticRgn(0 0 rect.Width() rect.Height());
SetWindowRgn(h_rgn true);
dc.Ellipse(0 0 rect.Width() rect.Height());
dc.SetTextColor(RGB(255 255 255));
}
//绘制按钮文本
CString str;
GetWindowText(str);
dc.DrawText(str CRect(0 0 rect.right rect.bottom)
DT_CENTER | DT_VCENTER | DT_SINGLELINE);
dc.DeleteDC();
}
void CCustomButton::OnLButtonDown(UINT nFlags CPoint point)
{
// TODO: Add your message handler code here and/or call default
m_IsPressed = TRUE;
CButton::OnLButtonDown(nFlags point);
}
void CCustomButton::OnLButtonUp(UINT nFlags CPoint point)
{
// TODO: Add your message handler code here and/or call default
m_IsPressed = FALSE;
CButton::OnLButtonUp(nFlags point);
}
BOOL CCustomButton::OnEraseBkgnd(CDC* pDC)
{
// TODO: Add your message handler code he
- 上一篇:大学C++课程设计图书馆管理系统源代码
- 下一篇:opencv实现分水岭算法
相关资源
- Arduino开源智能家居DIY,网关教程(
- C++ GUI Qt 4编程 (第二版) [超清版1
- c++builder6.0做的mscomm串口通讯
- 归并分类与快速分类平均时间之比较
- OneNET平台EDP协议C语言SDK
- 趣味编程.pdf
- 基于C++ builder 的文件传输代码
- BCB 调用WebService方法及常见问题排查
- C++ builder 网络传输程序含服务器和客
- c++builder做图像处理项目的核心代码
- C++ Builder利用PDFLib生成PDF文档
- Raize Components 6.1.12 for C++builder XE10的安
- C++builder实现计算器
- PN532-mfoc-mfcuk-GUI_V2.1.rar
- 多国语言Demo源码 c++builder6编写
- DLL转VC++格式的lib、转C++builder格式的
- Annotated Solution Guide for Thinking in C++
- IAccessible接口代码
- 动态生成多个按钮
- c++ builder socket
- OLE操作word和excel
- 类似QQ登陆界面c++builder
- SDL GUIDE 中文译本 SDL使用说明
- c++builder获取Cpu序列号代码
- 使用c++实现用户登录界面
- 使用MFC进行GUI编程
- huichang.cpp
- DirectUIForMFC
- dht11.h库文件
- C++Builder中使用的SQLite3类库
评论
共有 条评论