最近用 delphi 语言 + devexpress ribbon组件 开发了一个小系统,在窗体嵌入时,嵌入窗体在响应消息时遇到了一些问题,现将处理方法记录如下,供大家参考,希望能得到牛人的指点。
1、最初嵌入方法如下:
procedure LoadForm2(parentForm: TWincontrol);
//使用ribbon后,parentForm是父窗体上的一个Panel或activepage,不是父窗体本身
begin
if not Assigned(frmfrom2) then
begin
frmfrom2:= Tfrmform2.Create(nil);
frmfrom2.parent:= parentForm;
......
这种方式可以实现嵌入的效果,但是存在一个问题:form2上的text控件点击时,不能得到焦点,问题困扰了很久。
2、后来经过查资料发现,需要使用 setparent 函数
procedure LoadForm2(parentForm: TWincontrol);
begin
if not Assigned(frmfrom2) then
begin
frmfrom2:= Tfrmform2.Create(nil);
SetParent(frmfrom2.Handle, parentForm.Handle);
MoveWindow(frmfrom2.Handle, 0, 0, parentForm.Width, parentForm.Height, True);
.......
这样