DOBON.NET DOBON.NETプログラミング掲示板過去ログ

C#で作成するウィンドウのウィンドウサイズ制限を変更したい

環境/言語:[WindowsXP C# .NET Framework1.1]
分類:[.NET]

お世話になります。

現在、画面サイズよりも大きくなるようなMDIウィンドウを表示させたいと思うのですが、どうやっても自動的にクリッピングされてしまいます。
例えば縦幅を1500などにしたいのですが、画面表示サイズが1280x1024だと1036以上の大きさになりません。

なにかないかと思い、サイトを色々探してみた所、このようなサイトが見当たりました。

ttp://www.momo-lab.net/inu/bigform.html

やりたい内容と合致しているのですが、ここにあるサイトはプログラムコードがVB6? で書かれており、自分の実力ではこれをC#のコードに書き換えることができませんでした・・・。

protected override void WndProc(ref Message m)
{
  const int WM_GETMINMAXINFO = 0x24;

  switch (m.Msg)
  {
    case WM_GETMINMAXINFO :
      // ここにウィンドウ最大を変更するコードを入れると思うのですが・・・
      break;
    default :
      base.WndProc (ref m);
      break;
  }
}

もしも同様な事を既にC#で作られている方、知っている方がいましたら、ご教示願えないでしょうか?
お忙しい所、どうぞ宜しくお願いします。
こちらのサイトのTipsは既に見たでしょうか。
http://dobon.net/vb/dotnet/form/minimumsize.html

リンク先の方法とは違っていますが…
ちなみに手持ちの環境は.NET Framework2.0のみなんですが、FormのMaximumSizeプロパティだけで制御できました。
■No19835に返信(Rukuさんの記事)
> こちらのサイトのTipsは既に見たでしょうか。
> http://dobon.net/vb/dotnet/form/minimumsize.html

盲点でした。こちらにこのような解決策が載っているとは……調べ方が足りませんでした。反省。
快くお答えください、感謝します。
解決とさせていただきます。
解決済み!
ちなみに、こんな感じでいけました。

public struct POINTAPI
{
    public int x;
    public int y;
}

public struct MINMAXINFO
{
    public POINTAPI ptReserved;
    public POINTAPI ptMaxSize;
    public POINTAPI ptMaxPosition;
    public POINTAPI ptMinTrackSize;
    public POINTAPI ptMaxTrackSize;
}

protected override void WndProc(ref Message m)
{
    const long WM_GETMINMAXINFO = 0x24;

    if (m.Msg == WM_GETMINMAXINFO)
    {
        MINMAXINFO mmi = (MINMAXINFO)m.GetLParam(typeof(MINMAXINFO));
        mmi.ptMinTrackSize.x = 500;
        mmi.ptMinTrackSize.y = 500;

        mmi.ptMaxTrackSize.x = 3000;
        mmi.ptMaxTrackSize.y = 3000;

        System.Runtime.InteropServices.Marshal.StructureToPtr(mmi, m.LParam, true);
    }
    base.WndProc(ref m);
}

ここを参考に。
http://support.microsoft.com/kb/327824/ja

解決済みのところにすいません…
解決済み!
自分が教示願った方法まで親切に教えていただき、大変勉強になりました。
最初に伺った方法で実装させていただこうと思います。
まだまだ、C#もWindowsプログラミングも始めたばかりですが、頑張っていきたいと思いますので、これからも宜しくお願いします。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板