高手帮帮忙吧,这个问题都弄了两天了,MDI(50分)

  • 主题发起人 主题发起人 wubo830814
  • 开始时间 开始时间
W

wubo830814

Unregistered / Unconfirmed
GUEST, unregistred user!
怎么让主从窗体的透明度不一样,主窗体的透明度是200,我想让从窗体的透明度设为100,但是设置后从窗体的透明度是跟着主窗体的,怎么弄
 
帮帮忙吧,[:(]
 
你试试在主从窗体的OnCreate事件中都加入下面的语句看看:
//设置窗体透明
SetWindowLong(Handle, GWL_EXSTYLE, WS_EX_LAYERED);
SetLayeredWindowAttributes(Handle, 0, 200, 2);
还有你的子窗体不要让工程自动生成,你用代码把子窗体创建出来,类似于下面的方法:
with TfrmChild.Create(nil)do
try
...;
Show;//or ShowModal;
finally
Free;
end;
 
unit Unit1;
...
implementation
uses unit2;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
l: Longint;
begin
l := GetWindowLong(Handle, GWL_EXSTYLE);
l := l or WS_EX_LAYERED;
SetWindowLong(Handle, GWL_EXSTYLE, l);
SetLayeredWindowAttributes(Handle, 0, 100, LWA_ALPHA);
end;

procedure TForm1.FormShow(Sender: TObject);
begin
if Form2 = nil then
Form2 := TForm2.Create(nil);
Form2.FormStyle := fsMDIChild;
Form2.Show;
end;

end.

unit Unit2;
...
implementation
{$R *.dfm}
procedure TForm2.FormCreate(Sender: TObject);
var
l: Longint;
begin
l := GetWindowLong(Handle, GWL_EXSTYLE);
l := l or WS_EX_LAYERED;
SetWindowLong(Handle, GWL_EXSTYLE, l);
SetLayeredWindowAttributes(Handle, 0, 200, LWA_ALPHA);
end;
end.
不行呀,我再怎么做
 
你指明Handle试试:
SetWindowLong(form1.Handle, GWL_EXSTYLE, l);
SetLayeredWindowAttributes(form1.Handle, 0, 200, LWA_ALPHA);
或:
SetWindowLong(Self.Handle, GWL_EXSTYLE, l);
SetLayeredWindowAttributes(Self.Handle, 0, 200, LWA_ALPHA);
实在不行你就不要用MDI
 
有个偏方:
用ThemeEngine,拖一个TeThemeForm和一个TeThemeEngine控件到窗体
TeThemeEngine1的Theme不设,TeThemeForm1的ThemeEngine属性为TeThemeEngine1
接着把TeThemeForm1的Blending的Enable设为True,下面的数值就是透明度,0为全透明,255为不透明,这样主窗体就透明了,子窗体就不透明.
呵呵,偏方哈
 
我来说一下我的做法以及想达到的目的,
有三个form:form1是最底层的,它的透明度是50;form2是中间层的,它的透明度是100;form3是最上层的,它是不透明的。整个程序的移动是,按住左键,鼠标到哪它到哪。如果不用MDI,移动时候会有背景框,所以只能用MDI,这样看上去是一体的。
不知各位有什么好的办法,谢谢
 
我说的不能达到要求吗???
 
ThemeEngine在哪啊,我用是2007
 
兄弟,你太..........
http://www.2ccc.com/article.asp?articleid=4274
 
没有TeThemeForm,麻烦老大你,再说的细点
 
我看你还是别搞了,不是我打击你哈,
这样还..........
 
不会才去学吗,难道你一开始就啥都会吗,
最怕这种技术高,素质差的,弄过点东西就觉得了不起,
不说就不说,自己弄。。。真是在这种纯洁的论坛中不想说你啥。。。
 
如果你不是程序员,你说以上的话,我没有意见,
如果你是程序员,我已经说的很清楚了,连这么简单的问题都搞不定
还是改行吧,程序员不适合你,
做程序员是要有钻研精神的,你自问,你有吗???
 
钻研我不敢说,努力可以称得上
不要把自己说的那么神圣,
我只知道,有不懂的,就赶快去学,赶快去问,态度一定要好,不敢别人怎么
如果有人问我,我也会耐心的该他说,
算了,你去忙你的吧,谢谢你
 
我看了这个版本,与我说的有一点不一样,
你把Demo 下的mdidemo上的ngForm1的照我说的设好,
选一个皮肤,你再看看效果
 
嗯,我刚才自己弄了一下,换上皮肤,然后效果出来了,
不好意思,刚才多有冒犯,请你原谅。
谢谢你,
 
很想和你交个朋友,QQ:253817622
如果你愿意
 
后退
顶部