我在利用OnNCPaint来自己绘制窗口边框以及标题栏时发现,有的时候当我把鼠标移到窗口原来的标题栏的位置时,原来windows默认样式的标题栏会出现,再拖动窗口,才会消失显示出我的自绘标题栏。这是为什么呢?还有,如果我在创建窗口时,把Close按钮的属性去掉后,整个窗口最大化时就和平常最大化的情况不一样了,窗口的下边会叠在任务栏后面,而平常的最大化应该是紧贴任务栏的阿。这有时怎么一回事呢?希望高手能指点一下迷津!万分感谢!

解决方案 »

  1.   

    1.估计
    OnNcActivate(BOOL bActive)
    {
    return TRUE;
    }2.
    使用movewindow来制作最大化
      

  2.   

    2,这个问题我也遇到过,这个好像是windows内部的问题,如果问题不大就不要管它了,如果实在不行,好像截了那个最大化 的消息,然后用movewindow来搞是可以的,以前我做过,但是找不到代码了
      

  3.   

    那么如何得到任务栏的高度呢?我想movewindow之后窗口能紧贴任务栏
      

  4.   

    可以得到任务条的高度的
    RECT rect;
    HWND hWnd = ::FindWindow("Shell_TrayWnd", 0);
    ::GetWindowRect(hWnd,&rect);
      

  5.   

    重载几个消息
    WM_INITMENU
    WM_NCHITTEST
    WM_SETCURSOR
    WM_NCLBUTTONDOWN
    WM_NCLBUTTONDBLCLK
    这些消息都会对标题栏进行更新