[API高手入]已知窗口句柄如何植入到TTabSheet里

SonicX 2006-03-27 03:09:14
我要做到以下效果
////////////////////////////////////////
var
aForm : TForm;
tabSheet : TTabSheet;
begin
//Create a new tab sheet
tabSheet := TTabSheet.Create(PageControl1) ;
tabSheet.PageControl := PageControl1;

//create a form
//aForm := TForm.Create(tabSheet) ;
aForm.CreateParentedControl(tabSheet.Handle );
aForm.Parent := tabSheet;
aForm.Align := alClient;
aForm.BorderStyle := bsNone;
aForm.Visible := true;
tabSheet.Caption := aForm.Caption;

//activate the sheet
PageControl1.ActivePage := tabSheet;
...全文
139 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
SonicX 2006-03-27
  • 打赏
  • 举报
回复
基本解决了,但又有个新问题
PageControl1也只有句柄

tabSheet.PageControl := PageControl1;
这句该如何改

tabSheet.PageControl.Handle:=PageControlhwnd;
不行
Windows.SetParent没效果
xixuemao 2006-03-27
  • 打赏
  • 举报
回复
只要获得窗口的句柄就可以了。
SonicX 2006-03-27
  • 打赏
  • 举报
回复
窗体并非TForm对象,可否完全用API处理?
xixuemao 2006-03-27
  • 打赏
  • 举报
回复
procedure TForm1.Button1Click(Sender: TObject);
var
aForm : TForm2;
tabSheet : TTabSheet;
begin
aForm:= TForm2.Create(nil);
aForm.Align := alClient;
aForm.BorderStyle := bsNone;
aForm.Show;
tabSheet := TTabSheet.Create(PageControl1) ;
tabSheet.PageControl := PageControl1;
Windows.SetParent(aForm.Handle,tabSheet.Handle);
tabSheet.Caption := aForm.Caption;
PageControl1.ActivePage := tabSheet;
end;

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧