2010-11-09 21 views
-1

我正在使用MFC。我有一个从应用程序资源文件(使用Visual Studio 6对话框设计器设计)创建的自定义对话框,我需要从中获取最小/最大信息。我执行以下操作:WM_GETMINMAXINFO似乎不起作用。如何获得一个窗口的最小和最大可能的大小?

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

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

上面的代码是否有bug?是否有另一种方法从对话框中获取最小/最大信息?

我不想自己处理MINMAXINFO消息。

回答

0

按照MSDN:

“发送到一个窗口时,窗口的大小或位置即将更改应用程序可以使用这个消息,否决窗口的默认最大化大小和位置,或者它的。默认的最小或最大跟踪尺寸“。

人类,因为它不经过重新规模,信息不存在。

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

0

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

消息可能不会做你认为它所做的事,反正也不会有用。当我有一个可调整大小的对话框时,我在我的OnInitDialog中输入一个GetWindowRect,并将其保存为窗口的最小大小。我从来没有觉得有必要限制最大尺寸。

相关问题