透明的CheckBox

透明的CheckBox,我网上找到了这些主要代码如下:

OnPaint() 
{
 CPaintDC dc(this); // device context for painting
   
    // TODO: Add your message handler code here
    
    CRect rect;
    GetClientRect(&rect);

    CRect BoxRect;
    BoxRect=rect;
    BoxRect.right =BoxRect.left +15;
    dc.DrawFrameControl(BoxRect,DFC_BUTTON,DFCS_BUTTONCHECK|GetCheck()?DFCS_CHECKED :0);

    CFont   myFont;  
    myFont.CreatePointFont (120,_T("宋体"));
    CFont   *pOldFont=(CFont   *)dc.SelectObject   (&myFont);  
    dc.SetBkMode(TRANSPARENT);   
    
    CString StrWndText;
    GetWindowText(StrWndText);

    rect.OffsetRect (20,0);
    dc.DrawText(StrWndText,   rect,   DT_LEFT|DT_VCENTER|DT_SINGLELINE);   
    dc.SelectObject   (pOldFont);  
    myFont.DeleteObject   ();  
    // Do not call CButton::OnPaint() for painting messages
}

 

 

 

#pragma once
#include "afxwin.h"

class CTransCheckBox : public CButton
{
public:
 CTransCheckBox(void);
 ~CTransCheckBox(void);
 DECLARE_MESSAGE_MAP()
 afx_msg void OnPaint();

 LOGFONT   m_lf;    //
 CFont    m_font;         // 获取原有的文本的字体
};

 

#include "StdAfx.h"
#include "TransCheckBox.h"

CTransCheckBox::CTransCheckBox(void)
{
 ::GetObject((HFONT)GetStockObject(DEFAULT_GUI_FONT),sizeof(m_lf),&m_lf);
 m_font.CreateFontIndirect(&m_lf); 
}

CTransCheckBox::~CTransCheckBox(void)
{
 m_font.DeleteObject();
}
BEGIN_MESSAGE_MAP(CTransCheckBox, CButton)
 ON_WM_PAINT()
END_MESSAGE_MAP()

//实现CheckBox的透明的类型
void CTransCheckBox::OnPaint()
{
 CPaintDC dc(this); // device context for painting
 // TODO: 在此处添加消息处理程序代码
 // 不为绘图消息调用 CButton::OnPaint()
 CRect rect;
    GetClientRect(&rect);

    CRect BoxRect;
    BoxRect = rect;
    BoxRect.right = BoxRect.left +15;
    dc.DrawFrameControl(BoxRect,DFC_BUTTON,DFCS_BUTTONCHECK|GetCheck()?DFCS_CHECKED :0);

 CFont *pOldFont = (CFont *)dc.SelectObject(&m_font);
    dc.SetBkMode(TRANSPARENT);   
    
    CString StrWndText;
    GetWindowText(StrWndText);

    rect.OffsetRect (20,0);
    dc.DrawText(StrWndText,   rect,   DT_LEFT|DT_VCENTER|DT_SINGLELINE);   
    dc.SelectObject(pOldFont);  
    //Do not call CButton::OnPaint() for painting messages
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值