如何才能使窗口的右边框加宽?谢谢!
(效果如下图所示)_______________________________
|                             |
| __________________________  |
||                          | |
||                          | |
||                          | |
||                          | |<----右边框比左边框宽
||                          | |
||                          | |
||__________________________| |
-------------------------------

解决方案 »

  1.   

    左右边框同时增加,然后SetWindowRgn
      

  2.   

    CMyWnd::OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS FAR* lpncsp)
    {
             CWnd::OnNcCalcSize(bCalcValidRects, lpncsp);
    lpncsp->rgrc[0].right -= 40;
    }
      

  3.   

    查查MSDN,看看SetWindowLong合不合适
      

  4.   

    void CTestDlg::OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS* lpncsp)
    {
    // TODO: 在此添加消息处理程序代码和/或调用默认值
    lpncsp->rgrc[0].right -= 20; CDialog::OnNcCalcSize(bCalcValidRects, lpncsp);
    }要重载 OnNcPaint() 填充扩大了的区域,否则是透明的.
      

  5.   

    changy() 
    的方法就可以,响应WM_NCCALCSIZE消息
      

  6.   

    void CMainFrame::OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS FAR* lpncsp) 
    {
    // TODO: Add your message handler code here and/or call default
    lpncsp->rgrc[0].right -= 20;

    CFrameWnd::OnNcCalcSize(bCalcValidRects, lpncsp);
    }BOOL CMainFrame::OnNcCreate(LPCREATESTRUCT lpCreateStruct) 
    {
    if (!CFrameWnd::OnNcCreate(lpCreateStruct))
    return FALSE;

    // TODO: Add your specialized creation code here

    return TRUE;
    }void CMainFrame::OnNcPaint() 
    {
    // TODO: Add your message handler code here
    CRect rt;
    GetWindowRect(rt);
    ScreenToClient(&rt);
    rt.left = rt.right - 20;
    rt.top += 80;
    rt.bottom += 180;
    CBrush brush(RGB(0,0,255));

    CWindowDC dc(this);
    dc.FillRect(&rt, &brush);
    // Do not call CFrameWnd::OnNcPaint() for painting messages
    CFrameWnd::OnNcPaint();
    }数字是我凑的,给lz个思路