给位高手,为了实现像Foxmail一样,窗口能显示在任务栏,但是问题出现了!(200分)

  • 主题发起人 主题发起人 friecin
  • 开始时间 开始时间
F

friecin

Unregistered / Unconfirmed
GUEST, unregistred user!
我是用C++Builder编写的,能够实现新建窗口显示在任务栏,但是当在新建的窗口中调用其他窗口的时候,该窗口总是隐藏(包括系统对话框窗口),请问高手如何解决?
先谢谢了!
 
用Dll调用窗体试试!
 
你看我下面的程序:(我用的是Delphi,其实与CB一样的)
--------------------------------
unit Unit2;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm2 = class(TForm)
ListBox1: TListBox;
ComboBox1: TComboBox;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
procedure CreateParams(var Params: TCreateParams); override;
end;

var
Form2: TForm2;

implementation

{$R *.dfm}

{ TForm2 }

procedure TForm2.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams( Params);
Params.WndParent:=GetDesktopWindow;
// Params.WndParent := 0;
// Params.ExStyle := Params.ExStyle or WS_Ex_AppWindow;

end;

procedure TForm2.Button1Click(Sender: TObject);
begin
// Application.MessageBox('Hello!!!!','Hint', MB_OK);
MessageBox(Self.Handle,'Hello!!!!','Hint', MB_OK);
end;

end.

-----------------------------------
在调用新的对话框时,不要使用Delphi集成的MessageBox,因为他的父窗口是你的MainForm,
如果你直接这么用,那么父窗口就会跳到前面来了。而用Windows API的方式,加上本窗口句柄,一切OK!
 
那么OpenDialog 或者 在Form2中 另外创建一个窗口Form3,调用Form3->ShowModal()如何解决呢?
 
后退
顶部