2

アプリケーションを Web フォームに変換した後、ウィンドウのレイアウトに問題があります。ウィンドウにはデータウィンドウが含まれています。Internet Explorer でウィンドウを開くと、最初はレイアウトは問題ありませんが、コントロールをクリックするとすぐにレイアウトが壊れます。

ブラウザがフルサイズで開かれ、ウィンドウ上のオブジェクトのサイズをより大きなサイズに変更しようとするため、壊れます。なので幅と高さが固定されていれば問題は解決すると思います。

私は以下を使用してウィンドウを開いています:

Message.StringParm = "w_test"
of_SendMessage("pfc_open")

アプリケーションに w_test ウィンドウの固定幅と高さを強制的に保持させる方法はありますか?

私もフォローしようとしましたが、うまくいきません(つまり、レイアウトが壊れます)。

OpenSheet (w_test, w_main_frame, 0, original!)
4

1 に答える 1

0

ウィンドウにはresizableというプロパティが必要です。これはWindow Painter (チェック ボックス) または以下のようなコードで設定できます。コントロール メニューをオフにして、ウィンドウ ボタン を最小化または最大化する必要がある場合もあります。

しかし...あなたはおそらくこれらを見て、それらを変更することに運がありません. Web フォームを使用して同じ問題 (機能) を経験しましたが、回避策や解決策が見つかりませんでした。すべてのウィンドウ タイプを使用して動的にサイズ変更しようとしましたが、IE は常に最大化されて開きます。

幅と高さを動的に設定しきれていない場合は、次のようなことができます。

// Set window size and make it fixed
this.Width = 800
this.Height = 600

// Disallow Resize
this.Resizable = false

// Turn Off Minimize, Maximize & Control Menu
this.ControlMenu = false
this.Maxbox = false
this.Minbox = false

ウィンドウを固定サイズにすることができず、醜いものに頼る必要がある場合は、ウィンドウのサイズ変更イベントで、これのいくつかのバリエーションを試すことができます。推奨されません。再描画を使用してもウィンドウがちらつく可能性があります。インスタンス変数は、コードが再帰的にトリガーされ、スタック フォールトで終了するのを防ぎます。

// force the window to be a size
if not ib_forcing_resize then
   if newwidth <> 800 or newheight <> 600 then
        ib_forcing_resize = true
        this.setredraw(false)
        this.width = 800
        this.height = 600
        this.setredraw(true)
        ib_forcing_resize = false
   end if
end if
于 2011-10-09T14:02:19.417 に答える