0

MFCを使用しています。アプリケーションのリソース ファイル (Visual Studio 6 ダイアログ デザイナーで設計) から作成されたカスタム ダイアログがあり、そこから最小/最大情報を取得する必要があります。私は次のことを行います:

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

値「lresult」は 0 で、メッセージがアプリケーションによって処理されたことを意味します。ただし、minMaxInfo 構造体には意味のある値が入力されていません。

上記のコードにバグはありますか? ダイアログから最小/最大情報を取得する別の方法はありますか?

MINMAXINFO メッセージを自分で処理したくありません。

4

2 に答える 2

0

MSDNによると:

「ウィンドウのサイズまたは位置が変更されようとしているときに、ウィンドウに送信されます。アプリケーションは、このメッセージを使用して、ウィンドウのデフォルトの最大化されたサイズと位置、またはデフォルトの最小または最大トラッキング サイズをオーバーライドできます。」

エルゴ、サイズ変更を行っていないため、情報はありません。

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

于 2010-11-09T14:50:20.970 に答える
0

WM_GETMINMAXINFO に関する Microsoft のドキュメントを確認すると、メッセージを送信する前に、Windows がデフォルト値で構造体を初期化することがわかります。メッセージのデフォルト ハンドラは、これらの値を変更しないままにします。これらの値を自分で初期化したことがないと思います。そのため、意味のある値が表示されていません。

メッセージが思ったとおりに機能せず、役に立たない可能性もあります。サイズ変更可能なダイアログがある場合、 を入れて、GetWindowRectそれOnInitDialogをウィンドウの最小サイズとして保存します。最大サイズを制限する必要性を感じたことはありません。

于 2010-11-09T16:24:14.570 に答える