C++Builder Tips


フォーム・リサイズ制限


フォームのリサイズイベントを駆使するのもいいと思いますが、もっと簡単にWM_GETMINMAXINFOを捕まえると楽に実現できます。

※フォームのConstraintsプロパティでも実現できます。本サンプルとはちょっと動作が違いますが…

//-------------------------------------------------------------------
//  Unit1.h
//-------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE 管理のコンポーネント
private: // ユーザー宣言
public: // ユーザー宣言
  __fastcall TForm1(TComponent* Owner);
  
void __fastcall WMGETMINMAXINFO(TWMGetMinMaxInfo & msg);
protected:
  
BEGIN_MESSAGE_MAP
    VCL_MESSAGE_HANDLER(WM_GETMINMAXINFO, TWMGetMinMaxInfo, WMGETMINMAXINFO)
  END_MESSAGE_MAP(TForm)
};

//-------------------------------------------------------------------
//  Unit1.cpp
//-------------------------------------------------------------------
void __fastcall TForm1::WMGETMINMAXINFO(TWMGetMinMaxInfo & msg)
{
  POINT sdtMinPoint;
  POINT sdtMaxPoint;

  sdtMinPoint.x = 100;
  sdtMinPoint.y = 100;

  sdtMaxPoint.x = 200;
  sdtMaxPoint.y = 200;

  msg.MinMaxInfo->ptMinTrackSize = sdtMinPoint ; // 最小値の設定

  msg.MinMaxInfo->ptMaxTrackSize = sdtMaxPoint ; // 最大値の設定
}

DownLoad bcbtips017.lzh 3KB(BCB5)