怎么重画MDI边框

用的WTL重画的MDI边框,具体的思路和做法是(具体方法看付件里的源代码)

  • 先去掉MDI窗口原有的系统边框

ModifyStyle(m_hWnd,WS_BORDER|WS_THICKFRAME|WS_DLGFRAME,0);
ModifyStyle(m_hWnd,0,WS_CLIPCHILDREN|WS_CLIPSIBLINGS);

  • 再在WM_NCCALCSIZE消息里,指定MDI新的系统边框的宽度

    NCCALCSIZE_PARAMS* lpncsp = (NCCALCSIZE_PARAMS*)lParam;
    if (bCalcValidRects && lpncsp)
    {
    lpncsp->rgrc[0].left+=m_nBorderPixels+m_nClientBorderPixels;

    if (!m_bTitleBarInClientArea)
    {
    lpncsp->rgrc[0].top+=m_nBorderPixels + (m_rcTitle.bottom-m_rcTitle.top)+m_nClientBorderPixels;
    }

lpncsp->rgrc[0].right-=m_nBorderPixels+m_nClientBorderPixels;
lpncsp->rgrc[0].bottom-=m_nBorderPixels+m_nClientBorderPixels;
}

  • 最后在WM_NCPAINT消息里自画MDI边框

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值