不大明白你的思路,不过楼上的话是有道理的。
用wordapplication是不可能获得窗口举柄的,好像又没有方法可以知道一个对话框是打
开的。但窗口的标题是知道的,api函数通过标题找出窗口句柄,你的问题就可以解决了
下面的一段代码把字体对话框挪到自己的程序中
var
TheProgHwnd:Hwnd;
Stext:string;
function EnumWindowsProc(AHWnd: HWnd;
LPARAM: lParam): boolean; stdcall;
var
WndCaption: array[0..254] of char;
WndClassName: array[0..254] of char;
ParentHWnd:hwnd;
begin
GetWindowText(AHWnd, @WndCaption, 254);
GetClassName(AHWnd, @WndClassName, 254);
ParentHWnd:=GetParent(AHWnd);
if StrPas(WndCaption)= Stext then
begin
TheProgHwnd:=FindWindow(WndClassName,WndCaption);
end;
Result := True;
end;
{$R *.dfm}
procedure TForm1.asdfsdf1Click(Sender: TObject);
var Myprog:Hwnd;
begin
stext:='字体';
EnumWindows(@EnumWindowsProc, 0);
windows.SetParent(TheProgHwnd,Handle);
// moveWindow(TheProgHwnd,0,0,800,600,True);
end;