吐血求解:MDI主窗口客户区显示网页问题!(200分)

D

dylb

Unregistered / Unconfirmed
GUEST, unregistred user!
查阅以前的帖子基本上都是讲如何在客户区显示背景图,客户区放置一个背景图太浪费了,
如果可以将公司内部网站首页放置在客户区岂不更好。
如何利用MDI窗口中主窗口的客户区显示一个网页(即:放置一个Webbrowser控件在主窗口
客户区,同时当有子窗口弹出时,Webbrowser被子窗口给遮盖住)。
 
直接放一个WebBrowser,不行吗,把它的主页设成你的内部网站主页。
还是其他意思??
 
to:netke
要是这么简单我就不用提出来了,你在MDI客户区放一个webbrowser,然后打开一个子窗口
看看是什么效果就知道了,WebBrowser把子窗口给盖住了!!!
我现在想要解决的问题就是如何让子窗口把WebBrowser盖住。
 
试试以下方法:
在显示子窗口时: WebBrowser1.SendToBack;
在隐藏子窗口时: WebBrowser1.BringToFront;
缺点就是:执行WebBrowser1.SendToBack;后WebBrowser会Hide起来。
我再看看。
 
我认为应该有什么方法可以将WebBrowser控件“绑定”在客户区最里层,原因很简单:
在Delhi5中,image控件和shape控件被放置在和Panel同一个层中,而在Delphi6中,image
控件和Shape控件就被放置到客户区最里层了,所以我认为肯定有某种方法能将WebBrowser
控件也放置到客户区的最里层去。可惜我对Windows底层不太了解,自己无法实现而已。
 
>>我认为应该有什么方法可以将WebBrowser控件“绑定”在客户区最里层,原因很简单:
这倒不一定。 因为TImage和TShape都是Graphic Control,即它是直接画在Form上面的。
 
真的没有办法解决吗???
 
太失望了!!!
 
动态创建,从ClientHandle 动脑筋!!!!!!!

另外可参考这个API:SetWindowPos
 
你他建成一个子窗口childform 上面放一个webbrowse

然后
form.bordstype:=bsnode;
childform.sendback;就可以了
 
变通一下,做个普通窗口重叠在client区
 
你要求能够点击网页中的链接么?
 
看来 Delphi 中的 MDIForm的处理可能过于简单化了。

在VC中,MDIForm 和 MDIForm 之间是由一个View 进行协调的。
而在Delphi 中,MDIForm 的所有控件都放置在所有MDIChild的上面。
 
感觉上好象是不可能解决的问题/ 除非底层处理/
MDIForm上不能设置窗体控件,TImage和TShape都是Graphic Control等还可以/
而这种风格的处理,好象也只有用友的MDIForm可以的/
但不知道他是怎么来实现的哦, 与上面情况相似!大家有谁知道的哦!
 
哈哈,我已经完美的解决了。
使用了不少技巧。
源代码以及编译好的程序http://loqi.myetang.com/down/mdi.zip
用户也能够在网页中输入内容,点击链接!
 
赶紧给分吧:)
我已经两个星期没有在论坛说话了,穷啊:)
 
[:)]
shenloqi做的这个程序模拟得还是比较逼真的,它绕过了MDI,而是通过拦截鼠标、键盘
动作把一个WebBrowser所在的窗体始终放在最底层。
除了鼠标点击后的面窗口的时候闪烁比较厉害以外。
如果能把这个缺陷解决的话,就可以拿出去骗人了[:D]
当然,如果客户对屏幕闪烁不敏感也没有问题。

可以把分给他了。[:)]
 
? 怎么发了两遍?
总的来说,效果是出来了
但离真正实用还有一些距离,象上面说的,闪烁问题,还有一个鼠标滚轮滚动的时候有时会
出现奇怪的现象。 各位自己试试看
 
to:xianjun
如果你完美解决了的话,我再给你300分
 
想办法将控件绑定到 ClientHandle 上,
这要解决从ClientHandle得到 TCompnonet ,否则parent 不便设置。
 
顶部