将应用程序转换为Web表单后,我遇到了窗口布局的问题。该窗口包含一个数据窗口。当我在Internet Explorer中打开窗口时,最初布局是可以的,但是一旦我点击任何控件,布局就会中断。
它打破了,因为浏览器以完整大小打开,并尝试将窗口上的对象调整为更大的大小。 所以我认为如果宽度的宽度和高度保持不变,问题就可以解决了。
我正在使用以下方式打开窗口:
Message.StringParm = "w_test"
of_SendMessage("pfc_open")
无论如何,我是否可以强制应用程序保持w_test窗口的固定宽度和高度?
我也试过了,但它不起作用(即打破布局)。
OpenSheet (w_test, w_main_frame, 0, original!)
答案 0 :(得分:0)
您的窗口应该有一个名为可调整大小的属性,可以在 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
如果你无法让窗口固定大小并且需要诉诸丑陋的东西,你可以在窗口的resize事件中尝试一些变化......不推荐,即使使用重绘,窗口也可能会闪烁。实例变量可以防止代码以递归方式触发自身并以堆栈错误结束。
// 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