Top / Programming / C++Builder / BorderStyleがbsNoneのフォームのサイズを変更できるようにする

BorderStyleがbsNoneのフォームのサイズを変更できるようにする

フォームのBorderStyleをbsNoneに変更すると、フォームの境界線が表示されなくなります。
しかし、同時にフォームのサイズも変更できません。

フォームの境界線を非表示にしながら、サイズを変更できるようにする方法を説明します。

  1. フォームのプロパティを変更してBorderStyleをbsNoneにします。

  2. ヘッダファイルにCreateParams関数を追加します。

    class TForm1 : public TForm
    {
    __published:    // IDE 管理のコンポーネント
    private:    // ユーザー宣言
    public:     // ユーザー宣言
      __fastcall TForm1(TComponent* Owner);
    protected:
      void __fastcall CreateParams(Controls::TCreateParams &Params); //追加
    };
    
  3. ソースファイルにCreateParams関数の処理を追加します。

    void __fastcall TForm1::CreateParams(Controls::TCreateParams &Params)
    {
      TForm::CreateParams(Params);
      Params.ExStyle = Params.ExStyle | WS_EX_STATICEDGE;
      Params.Style = Params.Style | WS_SIZEBOX;
    }
    

更新履歴