我用MFC新建了一个项目,响应WM_GETMINMAXINFO消息,在里面指定最大化的大小为512x384。
然后鼠标拖动最大化了的该窗口,该窗口自动被缩小。
Win7到底在想什么?测试过Vista以下都不会自动缩小该窗口,有什么解决方法不?目的让Win7不要自动缩小它?测试代码:http://www.rayfile.com/files/bfdcdb8c-e01b-11df-82a2-0015c55db73d/

解决方案 »

  1.   

    呵呵,Win7下却是这样,最大化以后拖动以后窗口可以缩小还原
      

  2.   

    问题是我现在的需求是已经限制了最大化和最小化大小,最大化后的窗口仍然小于屏幕分辨率,win7你让我直接拖不就得了,费那事干嘛?这可以算是win7强奸人意吗?
      

  3.   

    Win7新特性,最大化状态拖动窗口为“还原”
      

  4.   

    算了,散分吧!大致思路:拖之前去掉窗口WS_MAXIMIZE属性,拖完加上WS_MAXIMIZE,细节就不多说了
      

  5.   


    呵呵,不是它不够智能,而是“虽然最大化了,但是并没有屏蔽可移动状态”这种做法
    本身就是非规范的,或者说不符合Windows系统的原则。
      

  6.   


    既然如此,那么Windows为何要搞个WM_GETMINMAXINFO消息让你去控制最大化的大小呢?
      

  7.   

    WM_GETMINMAXINFO 是控制拉伸时的最小和最大好不好,与“最小化”和“最大化”状态无关。
    当然,重载了这个消息,一般应同时屏蔽掉最大化操作。所以我不太理解您所说的“虽然最大化了,但是并没有屏蔽可移动状态”是什么意思。
    窗口已经撑满整个屏幕了,还怎么移动呢,移出屏幕外??
    (当然,非“最大化”状态下是可以移出屏幕的,这又是另外的问题了。)
      

  8.   

    控制最大化、最小化和还原状态,最底层是通过以下API执行的:
    SetWindowPlacement
    GetWindowPlacement
      

  9.   

    http://topic.csdn.net/u/20101111/16/3a816150-a6c8-49fa-94af-9072e68c1e1c.html?seed=466845769&r=69779762#r_69779762