透明CheckBox

在类似MSN Messenger的Log in界面上同样需要透明的checkbox ,与透明Static相近,重载OnPain()。
但此处需要自行绘制chebox的小方框,并空出其位置后绘制文字。
DrawFrameControl可绘制小方框,而15像素差不多是个比较好的绘制举行宽度,同理,可在控件左侧开始20个像素处开始绘制文字为佳。

void CTransCheck::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
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值