MFC 新Tab按钮的使用,解决关闭按钮的BUG

 上图是VS2008的MFCTabCtrl控件标签页效果还是不错的(需要打SP1补丁),使用起来也比以前的CTabCtrl方便许多,但是这个控件有一个BUG, 就是在非多文档程序中关闭按钮无法正常使用,网上找了一下基本都没彻底讲清楚。自己动手,丰衣足食!问题还是自己弄懂的好,话不多说了,我贴一下解决关闭按钮的代码:

// 解决 CMFCTabCtrl 控件标签页“关闭”按钮的BUG
void CMFCTabCtrlEx::OnLButtonDown(UINT nFlags, CPoint point)
{
    CMFCTabCtrl::OnLButtonDown(nFlags, point);

    // 获取Tab的数量
    if (GetTabsNum() == 0) return;

    // 获取当前选择的Tab
    int sel = GetActiveTab();

    // 获取关闭按钮的区域
    CRect rcCloseBtn;
    rcCloseBtn = GetTabCloseButton();

    if (rcCloseBtn.PtInRect(point))
    {
        if(MessageBox(_T("确认关闭该标签页?"), _T("关闭提示"), MB_YESNO) == IDYES)
        {
            // 关闭当前Tab页关联窗口   
            GetActiveWnd()->SendMessage(WM_CLOSE);  
            // 删除当前Tab  
            RemoveTab(sel);
        }
    }
}


< 源代码下载 >

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值