【问题标题】:WM_GETMINMAXINFO does not seem to work. How to get a window's minimum and maximum possible size?WM_GETMINMAXINFO 似乎不起作用。如何获得窗口的最小和最大可能大小?
【发布时间】:2011-05-07 07:17:12
【问题描述】:

我正在使用 MFC。我有一个从应用程序的资源文件(使用 Visual Studio 6 对话框设计器设计)创建的自定义对话框,我需要从中获取最小/最大信息。我执行以下操作:

MINMAXINFO minMaxInfo;
LRESULT lresult = m_wnd->SendMessage(WM_GETMINMAXINFO, 0, (LPARAM)&minMaxInfo);

'lresult' 的值为 0,表示消息已由应用程序处理。但是,minMaxInfo 结构中没有填充有意义的值。

上面的代码有错误吗?还有其他方法可以从对话框中获取最小/最大信息吗?

我不想自己处理 MINMAXINFO 消息。

【问题讨论】:

    标签: mfc window size max minimum


    【解决方案1】:

    根据 MSDN:

    “当窗口的大小或位置即将改变时发送到窗口。应用程序可以使用此消息来覆盖窗口的默认最大化大小和位置,或者其默认的最小或最大跟踪大小。”

    因此,由于它没有重新调整大小,因此信息不存在。

    编辑:http://msdn.microsoft.com/en-us/library/ms632626(VS.85).aspx

    【讨论】:

      【解决方案2】:

      如果您查看Microsoft's documentation for WM_GETMINMAXINFO,您会看到 Windows 在发送消息之前使用默认值初始化结构。消息的默认处理程序将保持这些值不变;我猜您自己从未初始化过这些值,这就是为什么您看不到有意义的值。

      消息可能没有按照您的想法执行,并且无论如何也不会有用。当我有一个可调整大小的对话框时,我在我的OnInitDialog 中放了一个GetWindowRect 并将其保存为窗口的最小尺寸。我从来没有觉得有必要限制最大尺寸。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-07
        • 2023-04-11
        • 1970-01-01
        • 2013-09-09
        • 2019-02-25
        相关资源
        最近更新 更多