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 回答