1.我有一个主窗体,还有一个子窗体,现在想在主窗体中显示子窗体,用了如下的代码,
procedure TForm1.Button1Click(Sender: TObject);
begin
   frmIE:=TForm2.CreateParented(form1.handle);  //创建子窗体
   with frmIE do begin
     Left :=0;
     Top:=10;
     Width:=form1.width;
     Height:=form1.height-400;
   end;
   frmIE.Visible := True;
end;procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if assigned(frmIE) then
  frmIE.Free;
end;但是可以实现子窗体嵌入,只是不知道该怎样使子窗体能够透明,子窗体的控件可以在主窗体上正常看到,其他的窗体部分使透明的。我找了一下论坛,发现好多透明窗体的代码,但是放在这里就不适用了,哪位大侠有方法搞定,谢谢。2.还有一个问题,关于菜单的问题,我想在鼠标碰到菜单中的一项,也就是菜单变蓝高亮的时候,在label中显示这个菜单项的内容即caption,怎么做??

解决方案 »

  1.   

    第一个问题 你试试直接调子窗口的透明属性 
    ALPHABLEND := TRUE;
    ALPHABLENDVALUE := 0;第二个问题动态取菜单标题不清楚,楼下的有好办法吗
      

  2.   

    procedure TForm1.FormCreate(Sender: TObject) ;
    var
       FullRgn, ClientRgn, ButtonRgn: THandle;
       Margin, X, Y: Integer;
    begin
       Margin := (Width - ClientWidth) div 2;
       FullRgn := CreateRectRgn(0, 0, Width, Height) ;
       X := Margin;
       Y := Height - ClientHeight - Margin;
       ClientRgn := CreateRectRgn
         (X, Y, X + ClientWidth, Y + ClientHeight) ;
       CombineRgn(FullRgn, FullRgn, ClientRgn, RGN_DIFF) ;
       X := X + Button1.Left;
       Y := Y + Button1.Top;
       ButtonRgn := CreateRectRgn
         (X, Y, X + Button1.Width, Y + Button1.Height) ;
       CombineRgn(FullRgn, FullRgn, ButtonRgn, RGN_OR) ;
       SetWindowRgn(Handle, FullRgn, True) ;
    end;試下這個呢
      

  3.   

    >>关于菜单的问题,我想在鼠标碰到菜单中的一项,也就是菜单变蓝高亮的时候,在label中
    >>显示这个菜单项的内容即caption,怎么做??
    用個  ApplicationEvents1 控件, 在 Addtional 下, 處理Onhint事件,
    然後, 菜單指定的 ShowHint 設為 true
    這樣比較簡單
      

  4.   

    ApplicationEvents1 这个控件怎么用??我已经看到这个控件了,怎么使啊??处理好了,分至少分你一半:)