如题,我们可以使用GetSystemMetrics经过计算得到标题栏的
高度(不知道是否还有更好的办法),但是如何去修改呢?

解决方案 »

  1.   

    处理CMainFrame::DefWindowProc这个消息,
    LRESULT CMainFrame::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam) 
    {
    // TODO: Add your specialized code here and/or call the base class
    LRESULT lResult = CFrameWnd::DefWindowProc(message, wParam, lParam);
    if((message == WM_MOVE) || (message == WM_NCACTIVATE) || (message == WM_PAINT) ||
    (message == WM_NCPAINT))
    {
    CDC* pDC = GetWindowDC();
    VERIFY(pDC != NULL);
    DrawFrame(pDC);
    ReleaseDC(pDC);
    } return lResult;
    }
    在DrawFrame里把你标题栏的东西画下
      

  2.   

    不知道你要修改的所有的标题栏的高度,还是一个程序的标题栏的高度?
    如果是后者,用楼上的方法。
    如果是前者,看这个api
    SystemParametersInfo有上百个参数,可以更改系统的默认外观,需要什么看什么吧,我当时看了一天,后来没怎么用,现在忘完了~~~~
      

  3.   

    重载OnNcCalcSize(BOOL bcalcValidRects,NCCALCSIZE_PARAMS FAR* lpncsp;)lpncsp->rgrc[0].top+=10;
      

  4.   

    我是想修改一个程序的标题栏的高度,但是如果使用 kexuejia(小科)说的方法,当系统的
    标题栏高度更改后,我的程序任务栏也跟着改变了,如何才能使我的程序不受系统标题栏
    高度的影响?
      

  5.   

    不好意思写错了:
    我是想修改一个程序的标题栏的高度,但是如果使用  kexuejia(小科)说的方法,当系统的  
    标题栏高度更改后,我的程序“标题栏”也跟着改变了,如何才能使我的程序不受系统标题栏  
    高度的影响?