如何才能使窗口的右边框加宽?谢谢!
(效果如下图所示)_______________________________
| |
| __________________________ |
|| | |
|| | |
|| | |
|| | |<----右边框比左边框宽
|| | |
|| | |
||__________________________| |
-------------------------------
(效果如下图所示)_______________________________
| |
| __________________________ |
|| | |
|| | |
|| | |
|| | |<----右边框比左边框宽
|| | |
|| | |
||__________________________| |
-------------------------------
{
CWnd::OnNcCalcSize(bCalcValidRects, lpncsp);
lpncsp->rgrc[0].right -= 40;
}
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
lpncsp->rgrc[0].right -= 20; CDialog::OnNcCalcSize(bCalcValidRects, lpncsp);
}要重载 OnNcPaint() 填充扩大了的区域,否则是透明的.
的方法就可以,响应WM_NCCALCSIZE消息
{
// 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个思路