如何在mdi主窗内加上一个flash的背景呢?(100分求实现源代码) (100分)

  • 主题发起人 主题发起人 alan_yang
  • 开始时间 开始时间
A

alan_yang

Unregistered / Unconfirmed
GUEST, unregistred user!
如果非mdi窗口,那么显示flash是没问题的。
但对于mdi窗口flash的问题就出现了。它会把子窗口全部遮挡住。
请各位高手帮帮忙。
 
不会吧,没人这样搞过吗?
 
在MDIForm的 onshow 事件中:
flash := tshockwaveflash.Create(self);
flash.Height:= form1.ClientHeight;
flash.Width := form1.ClientWidth;
flash.ParentWindow := form1.ClientHandle;
flash.Movie:='e:/sbglywx/'+'html/qk.swf';
flash.Play;
 
不要用FLASH,资源占用率太高了!
 
多谢xeen,你的方法果然好用。我怎么就没有想到呢?
只是显示出来主窗口会自动出现两个滚动杆。
就算我已事先把两个滚动杆的visible都设为false,问题照样存在。
假如我把flash的高度和宽度各减去10,滚动杆就不会出现了。
那么就这个问题再请教一下:如何让滚动杆自动去掉呢?
 
是不是在里面放个窗体/也可以呢?
但是子窗口就不见了啊
 
翻了一下旧帖:发现有位 沈前卫 同志提出了如下的解决办法,但我按他的办法
把forms。pas加到project中却不成功,说已有forms这样的模块或单元。于是我吧
所有uses到forms的地方把forms去掉再尝试还是不成功。不知道为什么呢?以下
是他提出来的办法:

将Forms.Pas拷贝到你的工程文件的目录,并用Project菜单中的Add to Project....
将Forms.Pas加到你的工程文件中。改写procedure TCustomForm.CreateWnd;

FClientHandle := Windows.CreateWindowEx(WS_EX_CLIENTEDGE, 'MDICLIENT',
nil, WS_CHILD or WS_VISIBLE or WS_GROUP or WS_TABSTOP or
WS_CLIPCHILDREN or WS_HSCROLL or WS_VSCROLL or WS_CLIPSIBLINGS or
MDIS_ALLCHILDSTYLES, 0, 0, ClientWidth, ClientHeight, Handle, 0,
HInstance, @ClientCreateStruct);

改为就搞定:

FClientHandle := Windows.CreateWindowEx(WS_EX_CLIENTEDGE, 'MDICLIENT',
nil, WS_CHILD or WS_VISIBLE or WS_GROUP or WS_TABSTOP or
WS_CLIPCHILDREN or WS_CLIPSIBLINGS or
MDIS_ALLCHILDSTYLES, 0, 0, ClientWidth, ClientHeight, Handle, 0,
HInstance, @ClientCreateStruct);
 
看话题:203257
 
呵呵,不好意思,是自己的错,没有仔细检查。
好了问题终于解决了,100分全部给xeen兄,大家没意见吧?
再次感谢xeen以及老同志沈前卫,可惜无法给沈先生加分了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
534
import
I
D
回复
0
查看
1K
DelphiTeacher的专栏
D
I
回复
0
查看
765
import
I
后退
顶部