0

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

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

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

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

我不想自己处理 MINMAXINFO 消息。

4

2 回答 2

0

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

该消息可能不会像您认为的那样做,并且无论如何也不会有用。当我有一个可调整大小的对话框时,我会在其中放入一个GetWindowRect并将OnInitDialog其保存为窗口的最小尺寸。我从来没有觉得有必要限制最大尺寸。

于 2010-11-09T16:24:14.570 回答
0

根据 MSDN:

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

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

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

于 2010-11-09T14:50:20.970 回答